Spíše než pomocí MD5 nebo pokusů o dešifrování hesla – jak zde navrhovali jiní – jednoduše použijte nativní PHP password_hash() funkce, která automaticky zkontroluje, zda je heslo pro vás správné.
Zašifrujte heslo takto:
$unencrypted_password = 'secret!';
$encrypted_password = password_hash($unencrypted_password, PASSWORD_DEFAULT);
Poté vložte do své DB takto:
INSERT INTO users (encrypted_password, username) VALUES ($encrypted_password, $username);
Chcete-li zkontrolovat, zda je heslo správné, vyberte heslo z databáze pomocí:
SELECT encrypted_password FROM users WHERE username = $username;
Nakonec zkontrolujte správnost hesla pomocí passoword_verify() :
$correct = password_verify($unecnrypted_password, $encrypted_password);
if($correct == true) {
echo 'correct password!';
} else {
echo 'password incorrect!';
}
Buďte opatrní, abyste se chránili před vložením SQL, protože výše uvedený kód je vůči němu zranitelný.