Generator hashy MD5

Oblicz 128-bitowy hash MD5 tekstu, bajtów hex lub pliku. Wynik aktualizuje się w trakcie pisania, a pole „Porównaj z” pokazuje, czy wynik zgadza się z oczekiwaną sumą kontrolną.

Wszystkie algorytmy

Działa w całości w przeglądarce. Nic nie jest wysyłane.

Jak używać

  1. Wpisz lub wklej tekst, ustaw „Wejście jako” na „Hex”, aby podać bajty szesnastkowo, albo kliknij „Otwórz plik”, aby obliczyć hash dokładnie tych bajtów, z których składa się plik.
  2. Pozostaw „Kodowanie tekstu” na UTF-8, chyba że oryginalny hash obliczono z tekstu w innym zestawie znaków.
  3. W polu „Wyjście jako” wybierz „hex (małe litery)”, „HEX (wielkie litery)” lub „Base64”.
  4. Aby sprawdzić pobrany plik, wklej opublikowaną sumę MD5 do pola „Porównaj z” i sprawdź, czy pojawi się komunikat „Zgadza się”.

Czym jest MD5?

MD5 (Message-Digest Algorithm 5) został zaprojektowany przez Ronalda Rivesta i opublikowany w 1992 roku jako RFC 1321. Odczytuje dane wejściowe w blokach 512-bitowych i daje 128-bitowy hash, zwykle zapisywany jako 32 znaki szesnastkowe lub 24 znaki Base64. Te same dane zawsze dają ten sam hash, a zmiana choćby jednego bitu wejścia zmienia mniej więcej połowę bitów wyniku.

Hashowanie działa w jedną stronę: nie ma żadnego klucza ani sposobu, by „odszyfrować” hash MD5 z powrotem do danych wejściowych. Serwisy, które twierdzą, że potrafią odwrócić MD5, wyszukują hash w ogromnych tabelach zahashowanych słów i haseł z wycieków. Dlatego MD5 krótkiego hasła bez soli często udaje się znaleźć w kilka sekund.

Czy MD5 jest nadal bezpieczny?

Nie, jeśli w grę wchodzi atakujący. Xiaoyun Wang i jej współpracownicy opublikowali w 2004 roku praktyczne kolizje: dwa różne ciągi danych o tym samym MD5. Później pojawiły się kolizje z wybranym prefiksem: w 2008 roku badacze użyli takiej kolizji do utworzenia fałszywego certyfikatu urzędu certyfikacji (CA), a w 2012 roku złośliwe oprogramowanie Flame wykorzystało ją do podrobienia certyfikatu, dzięki któremu jego kod wyglądał na podpisany przez Microsoft. Dziś zwykły laptop znajduje kolizję MD5 w kilka sekund, a RFC 6151 stwierdza, że MD5 nie jest już dopuszczalny tam, gdzie wymagana jest odporność na kolizje, na przykład w podpisach cyfrowych.

MD5 nadal dobrze sprawdza się jako suma kontrolna chroniąca przed przypadkowym uszkodzeniem, takim jak niepełne pobranie pliku czy przekłamany bit na dysku, a także jako klucz pamięci podręcznej lub do deduplikacji zaufanych danych. Jeśli plik lub jego suma kontrolna mogą pochodzić od atakującego, użyj zamiast niego SHA-256.

Hex, Base64 i niezgodne hashe

MD5 zapisuje się zwykle w postaci szesnastkowej – właśnie tak wypisuje go md5sum. Niektóre protokoły przesyłają jednak surowe 16 bajtów w Base64, na przykład nagłówek HTTP Content-MD5 używany przez API usług przechowywania danych w chmurze, takich jak Amazon S3. Ustaw „Wyjście jako” na „Base64” albo przekonwertuj istniejącą wartość narzędziem Hex na Base64.

Jeśli otrzymany MD5 różni się od wyniku innego narzędzia, różnią się bajty wejściowe. Najczęstsze przyczyny to końcowy znak nowego wiersza, znaki końca wiersza w stylu Windows albo inne kodowanie tekstu: „café” zajmuje 5 bajtów w UTF-8, ale tylko 4 bajty w ISO-8859-1, więc oba hashe nie mają ze sobą nic wspólnego.

$ echo "hello" | md5sum      # hash ciągu "hello\n"
b1946ac92492d2347c6235b4d2611184  -
$ printf 'hello' | md5sum    # hash ciągu "hello"
5d41402abc4b2a76b9719d911017c592  -

MD5 w wierszu poleceń i w kodzie

md5sum file.iso                          # Linux
md5 file.iso                             # macOS
certutil -hashfile file.iso MD5          # Windows
Get-FileHash file.iso -Algorithm MD5     # PowerShell

# Python
import hashlib
hashlib.md5('hello'.encode('utf-8')).hexdigest()

// Node.js
require('crypto').createHash('md5').update('hello', 'utf8').digest('hex')

Wbudowany w przeglądarki interfejs Web Crypto API nie obsługuje MD5, dlatego ta strona oblicza go w JavaScripcie bezpośrednio na urządzeniu; nic nie jest wysyłane. Tabela „Wszystkie algorytmy” pod wynikiem pokazuje dla tych samych danych także SHA-1, SHA-256, SHA-384, SHA-512, CRC-32 i CRC-32C.

Przykłady

Wejście (UTF-8)MD5
Hello, World!65a8e27d8879283831b664bd8b7f0ad4
Base64.is2e3c0e8b828164a8db7f62146ca87e14
你好7eca689f0d3389d9dea66ae112e5cfd7

Najczęściej zadawane pytania

Czy hash MD5 można odszyfrować?
Nie. MD5 to jednokierunkowa funkcja hashująca, a nie szyfrowanie, więc nie ma czego odszyfrowywać; „deszyfrator MD5” może zwrócić tylko dane, które już ma w swoich tabelach. Jeśli później trzeba odzyskać oryginalne dane, zaszyfruj je, a gdy nie muszą pozostać tajne, zakoduj je w Base64, co jest w pełni odwracalne.
Czy MD5 wystarczy do sprawdzenia pobranego pliku?

Niezawodnie wykrywa przypadkowe uszkodzenia. Ponieważ jednak kolizje są tanie, ktoś, kto przygotuje plik z wyprzedzeniem, może utworzyć drugi, inny plik o tym samym MD5. W przypadku plików istotnych dla bezpieczeństwa sprawdź hash SHA-256 pochodzący z zaufanego źródła albo podpis cyfrowy.

Jak długi jest hash MD5?
128 bitów, czyli 16 bajtów: 32 znaki w zapisie szesnastkowym lub 24 znaki Base64 zakończone ==. 32-znakowy ciąg szesnastkowy może też być hashem MD4 lub NTLM; Identyfikator hashy wyświetla wszystkie możliwe algorytmy.
Czy można obliczyć MD5 dużego pliku?
Tak. Kliknij „Otwórz plik”, a bajty pliku zostaną zahashowane w przeglądarce bez wysyłania ich na serwer. Ograniczeniem jest pamięć dostępna dla przeglądarki, dlatego pliki o rozmiarze wielu gigabajtów lepiej hashować poleceniem md5sum lub certutil.
Czy hasła można przechowywać jako MD5?
Nie. MD5 zaprojektowano z myślą o szybkości, więc jeden procesor graficzny sprawdza miliardy prób na sekundę. Hasła przechowuj za pomocą Argon2id, scrypt, bcrypt lub PBKDF2, które dodają sól i celowo działają wolno. Silne hasła możesz od razu utworzyć w Generatorze haseł.