PHP: aggiungere un salt alle password
In PHP si può aggiungere un salt ad una password con molta semplicità.
In PHP si può aggiungere un salt ad una password con molta semplicità.
Aggiungere un salt è un modo efficace per rendere una password più sicura. Un salt non è altro che una stringa che può essere aggiunta all'inizio o alla fine della password già codificata o in entrambe le posizioni.
Esempio:
// Andrebbe memorizzato in una posizione sicura
define('PWD_SALT', 'yRUbX$2JOt7#9A?p7dDa');
function my_add_salt($password) {
if(empty($password)) {
return null;
}
return md5(PWD_SALT) . md5($password) . md5(PWD_SALT);
}
Quindi per verificare la correttezza della password ad esempio al login:
$pwd = $db->escapeSQL(trim($_POST['pwd']));
$salted_pwd = my_add_salt($pwd);
if(is_null($salted_pwd)) {
// Errore
return $salted_pwd;
}
// Meglio un COUNT(*) in produzione
$value = $db->fetchOne("SELECT username, email FROM users WHERE pwd = '$hashed_pwd'");
if(is_null($value)) {
// Errore
}
Dal form acquisiamo la password in chiaro, quindi selezioniamo l'utente dal database usando la password codificata. Volendo si può effettuare anche una doppia verifica confrontando anche il nome utente e l'email.