PHP: aggiungere un salt alle password

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.

Torna su