Utilia

Generator hashy

Generuj hashe MD5, SHA-1, SHA-256 i SHA-512 z tekstu lub plików dowolnej wielkości i sprawdzaj sumy kontrolne. Wszystko działa w twojej przeglądarce.

Źródło
Tekst jest kodowany w UTF-8.
Algorytmy

Jak korzystać z generatora hashy

  1. W sekcji Źródło wybierz Tekst lub Pliki.
  2. W przypadku tekstu wpisz go lub wklej w pole Tekst do zahashowania. Hashe aktualizują się podczas pisania, a przycisk Oblicz hash przelicza je na żądanie.
  3. W przypadku plików upuść jeden lub kilka plików na pole wczytywania albo kliknij je, aby je wybrać. Przy dużych plikach pojawia się pasek postępu z przyciskiem Anuluj.
  4. Zaznacz potrzebne Algorytmy (MD5, SHA-1, SHA-256, SHA-512) i wybierz Format wyniku: szesnastkowo małymi literami, szesnastkowo wielkimi literami albo Base64.
  5. Aby sprawdzić pobrany plik, wklej opublikowaną sumę kontrolną w pole Porównaj z oczekiwanym hashem (opcjonalnie). Narzędzie wskaże, który algorytm się zgadza, albo poinformuje, że żaden.

Czym jest hash?

Kryptograficzna funkcja skrótu zamienia dowolne dane wejściowe – pojedyncze słowo albo obraz dysku o rozmiarze 50 GB – na krótki „odcisk palca” o stałej długości. Te same dane zawsze dają ten sam hash, a zmiana choćby jednego bitu całkowicie zmienia wynik. Hasha nie da się odwrócić, by odzyskać dane wejściowe.

Algorytm Rozmiar wyniku Długość hex Stan
MD5 128 bitów 32 znaki Złamany: tylko do sum kontrolnych
SHA-1 160 bitów 40 znaków Złamany: kolizje pokazane w 2017 roku
SHA-256 256 bitów 64 znaki Bezpieczny, obecny standard
SHA-512 512 bitów 128 znaków Bezpieczny, często szybszy na procesorach 64-bitowych

Na przykład hash SHA-256 ciągu abc to ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad.

Sprawdzanie pobranego pliku

Wydawcy oprogramowania często podają sumę kontrolną SHA-256 obok swoich plików. Po pobraniu otwórz tryb Pliki, upuść plik i wklej opublikowaną wartość w pole porównania. Zgodność dowodzi, że plik nie uszkodził się podczas pobierania i jest identyczny z tym, który zahashował wydawca. Nie dowodzi natomiast, że wydawca jest godny zaufania – do tego sama suma kontrolna musi pochodzić z zaufanego źródła, np. ze strony HTTPS lub z podpisanego wydania.

Jak obsługiwane są duże pliki

Pliki są odczytywane lokalnie i nigdy nie są przesyłane. Pliki do 64 MB są hashowane w jednym przebiegu za pomocą wbudowanego w przeglądarkę Web Crypto API. Większe pliki są czytane w kawałkach po 4 MB i przekazywane do przyrostowych funkcji skrótu, dzięki czemu zużycie pamięci pozostaje stałe, a zahashować można nawet pliki o rozmiarze kilku gigabajtów. Na typowym komputerze SHA-256 przetwarza kilkaset megabajtów na sekundę.

Tekst, kodowanie znaków i końce wierszy

Hash jest liczony z bajtów, a nie ze znaków. To narzędzie koduje tekst w UTF-8 – standardzie w sieci i w większości języków programowania. Polskie znaki, takie jak „ą” czy „ż”, zajmują w UTF-8 po dwa bajty. Jeśli gdzie indziej otrzymujesz inny wynik, poszukaj ukrytych różnic: końcowego znaku nowego wiersza (echo "abc" | sha256sum hashuje abc\n; użyj echo -n), windowsowych końców wierszy (\r\n) albo innego kodowania, np. UTF-16.

Najczęściej zadawane pytania

Czy mogę używać MD5 lub SHA-1 do przechowywania haseł?

Nie – i zwykłego SHA-256 też nie. Te funkcje zaprojektowano tak, by były szybkie, więc atakujący może sprawdzać miliardy prób na sekundę. Hasła wymagają powolnego algorytmu z solą, takiego jak Argon2, bcrypt lub scrypt.

Czy MD5 jest jeszcze do czegoś przydatne?

Tak: do wykrywania przypadkowych uszkodzeń, usuwania duplikatów plików albo porównywania ze starą listą sum kontrolnych. Nie można na nim polegać w obronie przed celową manipulacją, bo każdy może stworzyć dwa różne pliki o tym samym MD5.

Czy moje pliki są przesyłane na serwer?

Nie. Pliki odczytuje i hashuje twoja przeglądarka. Nic nie trafia na serwer, więc możesz bezpiecznie hashować poufne dokumenty.

Dlaczego mój hash nie zgadza się z tym z wiersza poleceń?

Niemal zawsze różnią się dane wejściowe: końcowy znak nowego wiersza, spacje, końce wierszy albo kodowanie tekstu. W przypadku plików upewnij się, że pobieranie się zakończyło – jeden brakujący bajt daje zupełnie inny hash.

Czym różni się wynik szesnastkowy od Base64?

To dwa sposoby zapisu tych samych bajtów. Zapis szesnastkowy to typowy format sum kontrolnych, a Base64 jest krótszy i używa się go np. w atrybutach Subresource Integrity (sha256-…). Pole porównania akceptuje oba formaty.