Celem tego golfa kodowego jest stworzenie programu, który pobiera ciąg znaków jako dane wejściowe, i musisz wyprowadzić wartość skrótu SHA-1 jako liczbę szesnastkową. Pseudokod dla SHA-1 można znaleźć tutaj
Inne zasady:
- Brak dostępu do sieci
- Nie możesz uruchamiać programów zewnętrznych
- Nie możesz używać wbudowanych metod do mieszania danych wejściowych
- Najkrótszy kod wygrywa
- Konieczna jest tylko obsługa danych ASCII
- Dane wyjściowe mogą być pisane małymi lub dużymi literami
Dane wejściowe można podać za pomocą:
- Monitowanie o dane wejściowe
- Korzystanie z argumentów wiersza polecenia
- Używanie STDIN
Przypadki testowe:
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 znaków
Tylko golfowa wersja pseudokodu.
źródło
.encode()
domyślnie używa UTF-8, który jest jeszcze krótszy.D (759 znaków)
Wersja wykonywalna online: http://dpaste.dzfl.pl/f0c8508f
źródło
C, 546 znaków
Program oblicza SHA-1 zawartości standardowego wejścia.
Kilka uwag:
int
ma dokładnie 32 bity. W przypadku platform, na których tak nie jest,unsigned
deklarację na samym początku należy zastąpić 32-bitowym typem platformy bez znaku. (uint32_t
byłby oczywistym wyborem, gdyby nie wymagał#include <stdint.h>
).^3
programu i zastąp inicjalizacjęk[]
następującym blokiem:,{19088743,0x89ABCDEF,0,1985229328,0xF0E1D2C3}
dla rozmiaru 541 znaków.char
domyślnie nie jest podpisany, można usunąć ten,&255
który pojawia się w ostatnim wierszu, aby zapisać cztery kolejne znaki.źródło
be417768b5c3c5c1d9bcb2e7c119196dd76b5570
doThe quick brown fox jumps over the lazy dog
ale musi wrócić2fd4e1c67a2d28fced849ee1bb76e7391b93eb12
Mój kod python jest trochę dłuższy, ale działa w pełni.
źródło
0xffffffff
) w zmienne (też czy-1
wystarczy?) ...h0..h4
są jeszcze dwuliterowe ;-)