Co to jest skrót? MD5, SHA-256 i kiedy faktycznie potrzebujesz HMAC
Funkcje mieszające zamieniają dowolne dane wejściowe w odcisk palca o stałej długości, ale nie wszystkie skróty są sobie równe. Wybór pomiędzy MD5, SHA-256 i HMAC oznacza różnicę między działającą kontrolą bezpieczeństwa a taką, która kończy się niepowodzeniem po cichu. W tym przewodniku wyjaśniono, co każdy z nich robi, kiedy go używać i jak weryfikować własne skróty bezpośrednio w przeglądarce.
Co to jest funkcja skrótu?
Funkcja skrótu pobiera dowolną ilość danych — tekst, plik, hasło — i tworzy ciąg znaków o stałej długości. To samo wejście zawsze daje ten sam wynik, co sprawia, że skróty są przydatne do weryfikacji. Zmień nawet jeden znak na wejściu, a skrót zmieni się całkowicie. Ta jednokierunkowa właściwość (nie można odwrócić skrótu, aby odzyskać oryginalne dane) sprawia, że jest ona użyteczna ze względów bezpieczeństwa.
MD5: szybki, ale zepsuty
MD5 generuje 128-bitowy skrót i był kiedyś standardem dla sum kontrolnych i weryfikacji plików. Dziś jest to kryptograficznie zepsute — kolizje (dwa różne dane wejściowe tworzące ten sam skrót) są łatwe do znalezienia. MD5 nadal pojawia się w starszych systemach i w przypadku sum kontrolnych niezwiązanych z bezpieczeństwem, ale nigdy w przypadku uwierzytelniania lub haseł. Skorzystaj z Generator haszu aby zobaczyć wyjście MD5, ale sięgnij po SHA-256 we wszystkim, co ma znaczenie.
SHA-256: aktualny standard
SHA-256 (część rodziny SHA-2) generuje 256-bitowy skrót i jest nowoczesnym wyborem do pracy kryptograficznej. Jest wystarczająco szybki dla większości aplikacji, odporny na znane ataki i szeroko obsługiwany. Zobaczysz SHA-256 używane w systemach blockchain, odciskach palców certyfikatów i haszowaniu haseł. The Generator haszu obsługuje SHA-256 jako domyślny algorytm.
HMAC: kiedy potrzebujesz tajemnicy
Zwykła funkcja skrótu jest deterministyczna — każdy może zweryfikować skrót. Jakiś HMAC (kod uwierzytelniania wiadomości oparty na skrótach) miesza się z tajnym kluczem, więc tylko ktoś, kto zna klucz, może wygenerować poprawny skrót. Jest to istotne w przypadku interfejsów API: serwer i klient dzielą się tajemnicą, każde z nich podpisuje nią swoje wiadomości, a odbiorca sprawdza, czy podpis jest zgodny. To dowodzi, że wiadomość pochodzi od żądanego nadawcy i nie została zmodyfikowana. The generator HMAC pozwala przetestować to za pomocą własnego tajnego klucza.
Kiedy stosować poszczególne podejścia
- Użyj zwykłego
SHA-256do sprawdzania integralności plików, mieszania haseł (z solą i powolną funkcją, taką jak bcrypt) i publicznego pobierania odcisków palców. - Używać
HMACdo podpisywania żądań API, weryfikacji webhooka i dowolnego scenariusza, w którym obie strony dzielą się tajemnicą. - Pominąć
MD5do wszystkiego, co jest związane z bezpieczeństwem. Używaj go tylko podczas interakcji ze starszymi systemami, które tego wymagają.
Twoje dane pozostają na Twoim urządzeniu
Zarówno Generator haszu I generator HMAC uruchomić całkowicie w przeglądarce. Twój tekst nigdy nie jest wysyłany na serwer — jest szyfrowany lokalnie na Twoim urządzeniu, działa w trybie offline po załadowaniu strony i nie wymaga konta ani logowania. Oznacza to, że możesz bezpiecznie hashować poufne informacje, takie jak klucze API, do testowania, bez udostępniania ich w Internecie.
Bonus: zmierz entropię
Jeśli generujesz klucze tajne lub hasła, plik Entropia Shannona Kalkulator pokazuje, ile losowości (a tym samym bezpieczeństwa) znajduje się w ciągu znaków. Wyższa entropia oznacza trudniejszy do odgadnięcia. Użyj go, aby sprawdzić, czy wygenerowane sekrety są rzeczywiście losowe przed ich wdrożeniem.