Jak generować hashe MD5, SHA-256 i inne

· 4 min czytania

Hashowanie konwertuje dowolne wejście — hasło, plik, wiadomość — na ciąg o stałej długości. To samo wejście zawsze produkuje ten sam hash, ale najmniejsza zmiana wejścia produkuje całkowicie inny hash. Sprawia to, że hashowanie jest niezbędne do weryfikacji integralności, przechowywania haseł i podpisów cyfrowych.

Jak działa hashowanie

Funkcja hashująca przyjmuje wejście dowolnego rozmiaru i produkuje wyjście o stałym rozmiarze:

Wejście Hash SHA-256 (pierwsze 16 znaków)
hello 2cf24dba5fb0a30e...
Hello 185f8db32271fe25...
hello! ce06092fb948d9ff...

Zauważ, że pojedyncza zmiana znaku (małe h na duże H) lub dodany znak całkowicie zmienia hash. To się nazywa efektem lawinowym.

Częste algorytmy hash

Algorytm Długość Status Używać do
MD5 32 znaki Złamany (niebezpieczny) Sumy kontrolne starsze, zastosowania niezabezpieczone
SHA-1 40 znaków Złamany (niebezpieczny) Tylko starsze systemy
SHA-256 64 znaki Bezpieczny Integralność plików, podpisy cyfrowe
SHA-512 128 znaków Bezpieczny Aplikacje o wysokim bezpieczeństwie

SHA-256 jest obecnym standardem dla większości zastosowań. MD5 i SHA-1 powinny być używane tylko do interakcji ze starszymi systemami, które ich wymagają.

Jak wygenerować hash

  1. Wybierz swój algorytm — wybierz MD5, SHA-1, SHA-256, SHA-384 lub SHA-512. Używaj SHA-256, chyba że masz konkretny powód.
  2. Wprowadź tekst lub prześlij plik — wpisz lub wklej tekst albo wybierz plik do zhashowania.
  3. Skopiuj hash — wynik to ciąg szesnastkowy używany do weryfikacji, przechowywania lub porównania.

Praktyczne zastosowania

Weryfikacja integralności pliku — pobierz plik i porównaj jego hash z opublikowanym oficjalnie. Jeśli się zgadzają, plik jest autentyczny i nieuszkodzony.

Przechowywanie haseł — aplikacje przechowują hashe haseł, a nie same hasła. Gdy się logujesz, Twoje wejście jest hashowane i porównywane z przechowywanym hashem.

Deduplikacja danych — hashuj duże pliki, aby szybko ustalić, czy są identyczne, bez porównywania ich bajt po bajcie.

HMAC dla bezpieczeństwa API — używaj HMAC (hash z tajnym kluczem), aby podpisywać żądania API i upewnić się, że nie zostały zmienione w tranzycie.

Wskazówki

Najczęściej zadawane pytania

Jaka jest różnica między MD5, SHA-1 a SHA-256?

MD5 produkuje hash 128-bitowy (32 znaki hex), SHA-1 produkuje 160 bitów (40 znaków), a SHA-256 produkuje 256 bitów (64 znaki). MD5 i SHA-1 są uważane za kryptograficznie złamane. SHA-256 jest obecnie bezpieczny i zalecany do weryfikacji integralności i bezpieczeństwa.

Czy można odwrócić hash, aby odzyskać oryginalne dane?

Nie. Funkcje hash są jednokierunkowe z założenia. Nie możesz matematycznie odwrócić hasha do jego wejścia. Jednak częste hasła można znaleźć w tablicach prekomputowanych (rainbow tables), stąd znaczenie solenia haseł przed hashowaniem.

Czym jest HMAC?

HMAC (Hash-based Message Authentication Code) łączy funkcję hash z tajnym kluczem. Weryfikuje zarówno integralność, jak i autentyczność danych — udowadniając, że nie zostały zmienione i że zostały wyprodukowane przez kogoś znającego tajny klucz.

Czy moje dane są wysyłane na serwer?

Nie. Całe hashowanie działa w Twojej przeglądarce z Web Crypto API. Twoje teksty i pliki nigdy nie opuszczają Twojego urządzenia.