INF.03Backend & PHP
Bezpieczne haszowanie haseł (password_hash, password_verify)
Nowoczesne, jednokierunkowe algorytmy kryptograficzne wbudowane w PHP gwarantujące bezpieczne przechowywanie haseł użytkowników z automatyczną solą.
Bezpieczne haszowanie w PHP:
Współczesne standardy bezpieczeństwa bezwzględnie zakazują przechowywania haseł w postaci jawnego tekstu lub z użyciem przestarzałych funkcji md5() czy sha1().
PHP
<?php
$hasloJawne = 'MojeTajneHaslo123!';
// 1. Haszowanie nowego hasła przy rejestracji:
$hashDoBazy = password_hash($hasloJawne, PASSWORD_DEFAULT);
// Wynik (zawsze 60 znaków dla BCRYPT): $2y$10$vI8aWBnW3fID.ZQ4/zo1G.q1lR5...
// 2. Weryfikacja hasła przy logowaniu:
$wprowadzoneHaslo = 'MojeTajneHaslo123!';
if (password_verify($wprowadzoneHaslo, $hashDoBazy)) {
echo "Hasło poprawne! Użytkownik zalogowany.";
} else {
echo "Niepoprawny login lub hasło.";
}Dlaczego password_hash jest bezpieczne?
- Automatycznie generuje unikalną, silną kryptograficznie sól (salt) dla każdego hasła.
- Zabezpiecza przed atakami słownikowymi i tablicami tęczowymi (Rainbow Tables).
Najczęstsze pułapki na egzaminie INF.03:
- Kolumna w bazie danych przechowująca hash z
password_hashmusi mieć długość co najmniejVARCHAR(60)lubVARCHAR(255).
Chcesz sprawdzić to pojęcie w praktyce?
Przeszukaj pytania z oficjalnych arkuszy CKE powiązane z hasłem Bezpieczne haszowanie haseł (password_hash, password_verify) lub rozpocznij trening.