Generator skrótów (hash)
Wpisz tekst i od razu otrzymaj jego skróty SHA-1, SHA-256 i SHA-512 — przydatne do sum kontrolnych, porównywania plików czy weryfikacji pobranych plików.
Porównywanie tekstu bez jego czytania
Najbardziej praktyczne, codzienne zastosowanie skrótu (hash) nie ma nic wspólnego z kryptografią: chodzi o stwierdzenie, czy dwa fragmenty tekstu są identyczne, bez wpatrywania się w nie na oko. Dwie wersje pliku konfiguracyjnego, dwa eksporty SQL, ten sam JSON z dwóch środowisk — wklej każdy z nich, porównaj wartości SHA-256, a identyczny skrót oznacza identyczny tekst co do ostatniej spacji. Działa to dlatego, że skrót jest odciskiem palca o stałej długości dla całych danych wejściowych: sześćdziesiąt cztery znaki szesnastkowe zastępują dowolną ilość tekstu, a porównanie zajmuje rzut oka zamiast diffa. Deweloperzy opierają się na tym samym pomyśle przy kluczach cache i deduplikacji — zahaszuj treść, a równe odciski palca oznaczają, że widziałeś już dokładnie tę treść wcześniej.
Niewidoczne znaki, które zmieniają wszystko
Niezgodność skrótów mówi Ci, że dane wejściowe się różnią — nigdy nie mówi Ci, gdzie, a winowajcą jest zwykle znak, którego nie widzisz. Końcowy znak nowej linii przeciągnięty przez kopiowanie-wklejanie, tabulator tam, gdzie drugi plik ma spacje, znaki końca linii Windows kontra uniksowe: każdy z nich daje zupełnie inny skrót czegoś, co wygląda na ten sam tekst. To narzędzie haszuje dokładnie znaki z pola, zakodowane jako UTF-8, nic nie dodając i nic nie ucinając. Więc gdy dwa skróty wbrew wszelkim oczekiwaniom nie chcą się zgadzać, sprawdź najpierw końce tekstu — różnica niemal zawsze kryje się na granicy. Wynik szesnastkowy tutaj jest zapisany małymi literami; opublikowana suma kontrolna wielkimi literami to nadal ta sama wartość, więc porównuj litery, nie ich wielkość.
Jednokierunkowe, ale nie kryjówka
Skrótu nie da się odwrócić — nie istnieje wzór, który zamieniłby odcisk palca z powrotem w tekst. Ale dla krótkich, przewidywalnych danych wejściowych nie trzeba go odwracać: SHA-256 popularnego słowa albo znanej frazy można po prostu wyszukać, bo ktoś już go wcześniej obliczył. To szczery limit, o którym warto pamiętać: haszowanie weryfikuje i porównuje, nie ukrywa. Jeśli celem jest ukrycie tekstu tak, by przeczytała go tylko właściwa osoba, to jest szyfrowanie — narzędzie do szyfrowania tekstu AES-256 robi to jak trzeba. A hasła to swój własny szczególny przypadek: należą do generatora bcrypt, który jest celowo powolny właśnie po to, żeby ten trik z wyszukiwaniem przestał działać.
Czym jest skrót (hash), a czym nie jest
Skrót (hash) to jednokierunkowy odcisk palca: te same dane wejściowe zawsze dają ten sam wynik, ale nie da się go odwrócić z powrotem do oryginalnego tekstu. Zmiana jednego znaku całkowicie zmienia cały skrót — dlatego skróty są przydatne do wykrywania manipulacji lub sprawdzania, czy pobrany plik zgadza się z oryginałem.
Którego skrótu użyć?
SHA-256 do niemal wszystkiego dzisiaj — to współczesny standard. SHA-512 daje dłuższy skrót i jest nieco mocniejszy; na nowoczesnym sprzęcie 64-bitowym zwykle nie jest wolniejszy. SHA-1 jest tu wyłącznie dla kompatybilności ze starszymi systemami; jest kryptograficznie złamany i nie powinien być podstawą bezpieczeństwa.
Czy mogę tym zahaszować hasło?
Nie do przechowywania haseł — zwykłe skróty SHA są szybkie do obliczenia, co ułatwia ich łamanie metodą brute-force. Użyj do tego dedykowanego narzędzia bcrypt.
Czy mój tekst jest gdzieś wysyłany?
Nie — haszowanie odbywa się w całości w Twojej przeglądarce za pomocą Web Crypto API. Nic nie jest przesyłane.
