Logo David Burdelak
Słownik · Cyberbezpieczeństwo

Co to jest hashowanie haseł?

Ostatnia aktualizacja:

Hashowanie haseł to zapisywanie w bazie nieodwracalnych skrótów (hashy) zamiast haseł jawnym tekstem. Dzięki temu wyciek bazy nie ujawnia haseł wprost. Do tego celu służą wolne, dedykowane algorytmy, takie jak bcrypt, scrypt i Argon2.

Dlaczego nie MD5 ani SHA-256?

Ogólne funkcje skrótu są zaprojektowane tak, by liczyć się szybko, więc atakujący sprawdza miliardy haseł na sekundę. Algorytmy do haseł są celowo kosztowne i mają parametr kosztu, który można zwiększać wraz ze wzrostem mocy obliczeniowej.

Sól i pieprz

Sól (salt) to unikalna, losowa wartość dodawana do każdego hasła przed hashowaniem. Chroni przed tablicami tęczowymi i sprawia, że identyczne hasła mają różne skróty. Nowoczesne biblioteki generują ją automatycznie.

Jak to zrobić w PHP?

$hash = password_hash($haslo, PASSWORD_DEFAULT);
if (password_verify($haslo, $hash)) { /* poprawne */ }

Czy hashowanie to to samo co szyfrowanie?

Nie. Szyfrowanie jest odwracalne przy użyciu klucza, a hashowanie jest jednokierunkowe. Hasła nie powinny być w ogóle możliwe do odszyfrowania.

Powiązane pojęcia

Wszystkie hasła z kategorii Cyberbezpieczeństwo