Haszowanie haseł - czym jest i dlaczego bcrypt lub Argon2 to standard
Hashowanie a szyfrowanie - to nie to samo
Hashowanie hasła to proces jednokierunkowy. Oznacza to, że nie "odszyfrujesz" hasza z powrotem do oryginalnego hasła.
Szyfrowanie działa inaczej - dane można odszyfrować kluczem.
Dla haseł użytkowników poprawnym podejściem jest hashowanie, nie przechowywanie haseł w czystym tekście.
Po co dodaje się sól (salt)?
Sól to losowy fragment danych dodawany do hasła przed hashowaniem. Dzięki temu:
- dwa identyczne hasła nie mają tego samego hasza
- trudniej wykorzystać gotowe tablice ataków
- lepiej bronisz się przed masowymi wyciekami
Dlaczego bcrypt i Argon2?
Nowoczesne algorytmy są celowo "wolniejsze" od starych funkcji typu MD5 czy SHA-1 stosowanych bez dodatkowych zabezpieczeń.
To dobrze, bo utrudnia ataki brute force i sprawdzanie milionów kombinacji na sekundę.
W praktyce:
- bcrypt jest sprawdzony i szeroko wspierany
- Argon2 oferuje bardzo mocną ochronę i elastyczną konfigurację
Typowe błędy w projektach
- przechowywanie haseł w plain text
- brak soli
- stosowanie przestarzałych algorytmów bez iteracji
- brak ograniczeń prób logowania
Podsumowanie
Bezpieczne przechowywanie haseł to podstawa każdej aplikacji. Dobrze skonfigurowany bcrypt lub Argon2, razem z polityką silnych haseł i ograniczaniem prób logowania, znacząco podnosi poziom bezpieczeństwa.
