Encoders & Utilities

Generator skrótów

Oblicz MD5, SHA-1, SHA-256, SHA-384, SHA-512 i HMAC dla tekstu lub plików. Lokalne hashowanie do 100 MB.

O tym narzędziu

Hash Generator oblicza hashe kryptograficzne dla tekstu lub plików w całości w Twojej przeglądarce. Obsługiwane algorytmy pokrywają pełną rodzinę SHA-2 (SHA-256, SHA-384, SHA-512) przez Web Crypto API, plus historyczny MD5 i SHA-1 przez małą implementację JS (zachowane do weryfikacji legacy wyjść). Warianty HMAC są dostępne dla wszystkich algorytmów SHA-2 — wklej klucz i wiadomość, dostań wyjście keyed-hash gotowe do weryfikacji podpisu.

Dla plików (drag-and-drop) plik jest strumieniowany przez funkcję hash w chunkach — więc możesz zhashować 100 MB ISO w kilka sekund bez wysyłania go gdziekolwiek. Wyjście może być wyświetlone jako lowercase lub uppercase hex lub jako Base64 (przydatne dla uwierzytelniania HTTP i podpisów JWT). Wiele algorytmów może być wybranych naraz; plik jest strumieniowany raz, a hashe obliczane równolegle.

Kiedy używać tego narzędzia

  • Weryfikacja pobrań. Porównaj SHA-256 pliku wobec opublikowanego checksumu projektu, by wykryć manipulację lub korupcję.
  • Generowanie hasha integralności. Wstępnie oblicz SHA-256 dla assetu przed dodaniem atrybutu integrity="sha256-..." na tagu <script>.
  • Podpisywanie żądań API. Oblicz HMAC-SHA-256 dla podpisywania żądań w stylu AWS bez pisania skryptu.
  • Szybka deduplikacja. Fingerprint SHA-1 na plik wystarczy do sprawdzeń "czy te dwa pliki są identyczne?".

Kiedy NIE używać MD5 lub SHA-1

Oba są kryptograficznie złamane. Kolizje MD5 zostały zademonstrowane od 2008; SHA-1 od 2017 (atak SHAttered). Używaj ich tylko do weryfikacji legacy — nigdy do nowych podpisów, haszowania haseł lub anti-tampering. Specyficznie dla haseł użyj bcrypt, scrypt lub Argon2 zamiast jakiegokolwiek plain hasha; są celowo wolne i memory-hard, by udaremnić ataki brute-force.

Najczęstsze pytania

Czy powinienem używać MD5 do przechowywania haseł?

Absolutnie nie. Plain hashe (MD5, SHA-1, nawet SHA-256) są zaprojektowane, by być szybkie, co jest przeciwieństwem tego, co chcesz dla haseł — szybko znaczy atakujący brute-force'ują je. Użyj celowo wolnej, memory-hard funkcji jak bcrypt, scrypt lub Argon2id. Większość nowoczesnych frameworków dołącza jeden jako domyślny password hasher.

Czy hashowanie w przeglądarce jest tak dokładne jak narzędzia linii poleceń?

Tak — dla SHA-256 i rodziny SHA-2 wyjście jest bit-for-bit identyczne z sha256sum w Linuksie lub shasum -a 256 w macOS, bo oba wołają ten sam fundamentalny algorytm. Nasze implementacje MD5 i SHA-1 są też szeroko testowane. Jedyna różnica vs CLI to wydajność: natywny kod jest szybszy na ogromnych plikach, ale przeglądarka radzi sobie z 100 MB komfortowo.

Co to jest HMAC?

Keyed hash — łączy tajny klucz z inputem tak, że wyjście nie może być sfałszowane przez kogokolwiek, kto nie zna klucza. Używany do podpisywania żądań API (AWS Signature V4 to HMAC-SHA-256), podpisów JWT z algorytmem HS256 i walidacji webhooków. Ten sam algorytm z różnymi kluczami produkuje niepowiązane wyjścia, co czyni go podpisem, a nie fingerprintem.

Dlaczego mój hash różni się od innego narzędzia?

Zwykle z powodu zakończeń linii lub kodowania. hello z końcową nową linią haszuje się inaczej niż hello bez. UTF-8 vs UTF-16 zakodowany tekst różni się. Zakończenia linii CRLF vs LF różnią się. Upewnij się, że oba narzędzia czytają dokładnie te same bajty — najprostsze sprawdzenie to zhaszować plik (nie string) i potwierdzić, że oba narzędzia zgadzają się co do sekwencji bajtów.