PHP offre funzioni native per gestire password in modo sicuro.
Hash della password
// Durante la registrazione
$password = $_POST["password"];
$hash = password_hash($password, PASSWORD_DEFAULT);
// Salva $hash nel databaseVerifica password
// Durante il login
$password = $_POST["password"];
$hash = $user["password"]; // Dal database
if (password_verify($password, $hash)) {
echo "Password corretta!";
} else {
echo "Password errata";
}Rehash se necessario
if (password_needs_rehash($hash, PASSWORD_DEFAULT)) {
$newHash = password_hash($password, PASSWORD_DEFAULT);
// Aggiorna nel database
}MAI fare
- Salvare password in chiaro
- Usare MD5 o SHA1 per password
- Creare algoritmi di hash custom