Serwery w Polsce · Warszawa Dyski NVMe

Jak skonfigurować bezpieczne przechowywanie haseł w PHP Drukuj

  • 0

Hashowanie haseł w PHP

Hasąa nigdy nie powinny być przechowywane w postaci jawnej ani szyfrowane odwracalnie. PHP oferuje wbudowane funkcje do bezpiecznego hashowania przy użyciu algorytmu bcrypt.

Tworzenie hasha hasła

<?php
$hasło = 'tajnehaslo123';
$hash = password_hash($hasło, PASSWORD_BCRYPT, ['cost' => 12]);
// Zapisz $hash w bazie danych
echo $hash; // $2y$12$...
?>

Weryfikacja hasła

<?php
$haslo_uzytkownika = $_POST['password'];
$hash_z_bazy = '$2y$12$...'; // pobrany z bazy

if (password_verify($haslo_uzytkownika, $hash_z_bazy)) {
    echo 'Zalogowano!';
} else {
    echo 'Błądne hasło';
}
?>

Aktualizacja algorytmu hashowania

if (password_needs_rehash($hash_z_bazy, PASSWORD_BCRYPT, ['cost' => 12])) {
    $nowy_hash = password_hash($haslo_uzytkownika, PASSWORD_BCRYPT, ['cost' => 12]);
    // Zaktualizuj hash w bazie danych
}
Nigdy: nie używaj MD5(), SHA1() ani base64_encode() do hashowania haseł — są łatwe do złamania. Zawsze używaj password_hash().

Czy ta odpowiedź była pomocna?

« Wstecz