Generator hashy
Działa w całości w Twojej przeglądarce. Twoje pliki i dane nigdy nie opuszczają Twojego urządzenia.
O tym narzędziu
To narzędzie hashuje tekst czterema algorytmami naraz: MD5, SHA-1, SHA-256 i SHA-512. Wpisz albo wklej tekst, a wszystkie cztery hashe liczone są z bajtów UTF-8 na bieżąco, w miarę pisania, każdy pokazany jako mały hex z przyciskiem kopiowania obok.
Po co liczyć wszystkie cztery algorytmy zamiast jednego?
Różne sytuacje wymagają różnych algorytmów, a pokazanie od razu wszystkich czterech oszczędza powrót do narzędzia, gdy nie wiadomo, którego oczekuje plik sum kontrolnych albo stary skrypt. SHA-1, SHA-256 i SHA-512 liczone są przez wbudowane w przeglądarkę Web Crypto API. MD5 wymaga za to niewielkiej biblioteki JavaScript, bo przeglądarki nie implementują go natywnie jako algorytmu Web Crypto. Wszystkie cztery działają na tych samych bajtach UTF-8 wprowadzonego tekstu, więc cztery widoczne ciągi hex zawsze są hashami dokładnie tego samego tekstu.
Czy MD5 i SHA-1 są jeszcze bezpieczne?
Do niczego związanego z bezpieczeństwem już nie. Oba mają znane ataki kolizyjne, czyli atakujący może skonstruować dwa różne wejścia dające ten sam hash, więc nie powinny chronić haseł, niczego podpisywać ani sprawdzać, czy plik nie został zmanipulowany. Nadal świetnie nadają się do sum kontrolnych i wykrywania duplikatów, gdzie po prostu porównuje się dwie dane pod kątem szybkiego dopasowania, a nie broni przed kimś, kto celowo próbuje oszukać sprawdzenie. Tam, gdzie bezpieczeństwo faktycznie się liczy, na przykład przy przechowywaniu haseł czy weryfikacji podpisów, użyj SHA-256 albo SHA-512.
Czy wpisywany tekst jest gdzieś wysyłany?
Nie. Wszystko działa lokalnie, w przeglądarce, na bieżąco podczas pisania. Nic, co wpiszesz, nie trafia na żaden serwer ani nie jest nigdzie zapisywane.
Typowe zastosowania: sprawdzenie, czy pobrany albo skopiowany plik zgadza się z opublikowaną sumą kontrolną, generowanie kluczy cache albo identyfikatorów adresowanych treścią, wyszukiwanie zduplikowanego tekstu lub rekordów, albo sprawdzenie przy debugowaniu, jaki hash daje fragment kodu dla danego wejścia. Zobacz dokumentację MDN dla SubtleCrypto.digest(), żeby dowiedzieć się, jak liczone są hashe WebCrypto.