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.