Цель этого code-golf состоит в том, чтобы создать программу, которая принимает строку в качестве входных данных, и вы должны вывести значение SHA-1 в виде шестнадцатеричного числа. Вы можете найти псевдокод для SHA-1 здесь
Другие правила:
- Нет доступа к сети
- Вы не можете запускать внешние программы
- Вы не можете использовать встроенные методы для хэширования ввода
- Самый короткий код выигрывает
- Необходимо только обрабатывать ввод ASCII
- Вывод может быть как строчным, так и прописным
Ввод может быть предоставлен с использованием:
- Подсказка для ввода
- Использование аргументов командной строки
- Использование STDIN
Тестовые случаи:
Input: The quick brown fox jumps over the lazy dog
Output: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
----------------------------------------------------------
Input: The quick brown fox jumps right over the lazy dog
Output: 1c3aff41d97ada6a25ae62f9522e4abd358d741f
------------------------------------------------------------
Input: This is a code golf challenge
Output: f52ff9edd95d98e707bd16a7dead459cb8db8693
Python 3 - 645 символов
Просто гольф-версия псевдокода.
источник
.encode()
по умолчанию используется UTF-8, что еще короче.D (759 символов)
Онлайн исполняемая версия: http://dpaste.dzfl.pl/f0c8508f
источник
C 546 символов
Программа рассчитывает SHA-1 из содержимого его стандартного ввода.
Пара заметок:
int
это ровно 32 бита. Для платформ, где это не так,unsigned
объявление в самом начале должно быть заменено на 32-битный тип платформы без знака. (uint32_t
было бы очевидным выбором, если бы это не требовалось#include <stdint.h>
.)^3
в программе и замените инициализациюk[]
следующим блоком:{19088743,0x89ABCDEF,0,1985229328,0xF0E1D2C3}
для размера 541 символов.char
по умолчанию нет подписи, можно удалить то,&255
что появляется в последней строке, чтобы сохранить еще четыре символа.источник
be417768b5c3c5c1d9bcb2e7c119196dd76b5570
дляThe quick brown fox jumps over the lazy dog
но он должен вернуться2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
Мой код на Python немного длиннее, но он полностью работает.
источник
0xffffffff
) в переменные (также будет-1
достаточно?) ...h0..h4
еще две буквы ;-)