Menu principale:
$password = 'LaM1aPassW0rd'; $hash = md5($password); //b33a0446525f0e11e91bd268dbbdfdc3 $hash = sha1($password); //814486c99c198b99d7d3e8a585d8b6be324b7177
$password = 'LaM1aPassW0rd'; $hash = md5(md5($password); $hash = md5(sha1($password);
$password = 'LaM1aPassW0rd'; $salt = '1dh3(3@2'; $hash = md5($password . $salt);
ALGORITMO | DESCRIZIONE |
CRYPTSTDDES | Standard basato su DES con chiave di due caratteri. |
CRYPTEXTDES | Estensione basata su DES con chiave di nove caratteri. |
CRYPT_MD5 | Crittografia basata su MD5 con 12 caratteri di chiave inizianti con $1$. |
CRYPT_BLOWFISH | Crittografia Blowfish con 16 caratteri di chiave inizianti con $2$ o $2a$. |
CRYPT_SHA256 | Crittografia basata su SHA-256 con 16 caratteri di chiave inizianti con $5$. |
CRYPT_SHA512 | Crittografia basata su SHA-512 con 16 caratteri di chiave inizianti con $6$. |
$password = 'LaM1aPassW0rd'; echo 'Standard DES: ' . crypt($password, 'rl') . "\n"; echo 'Extended DES: ' . crypt($password, '_J9..rasm') . "\n"; echo 'MD5: ' . crypt($password, '$1$rasmusle$') . "\n"; echo 'Blowfish: ' . crypt($password, '$2a$07$usesomesillystringforsalt$') . "\n"; echo 'SHA-256: ' . crypt($password, '$5$rounds=5000$usesomesillystringforsalt$') . "\n"; echo 'SHA-512: ' . crypt($password, '$6$rounds=5000$usesomesillystringforsalt$') . "\n"; Copy Gli output che otterremo sono simili ai seguenti: Standard DES: rlrilO6oNxQzw Extended DES: _J9..rasmvAavwwHGzfY MD5: $1$rasmusle$YumKbTCImTJsTsgYeybAW0 Blowfish: $2a$07$usesomesillystringfore0frKquhsqiIddYDH.rpL9GGLE4ZN1lu SHA-256: $5$rounds=5000$usesomesillystri$xoDuebqNnfT3MOdczgqISdPxZ2C91n550ToQbY7LeP5 SHA-512: $6$rounds=5000$usesomesillystri$ih83lc2hDlh5FrDrhPdbnhzGTWI79lquzan21cOOOgRGpX9e/R21pK6HNU1JYLtqh7Xr2na51P/Ibpj2AQ1TW0
hash_equals() ci restituirà un booleano in base al risultato della verifica. Vediamo un esempio: $password = 'LaM1aPassW0rd'; //password valida $hashedPassword = crypt($password, '$2a$07$usesomesillystringforsalt$'); //hash memorizzato nel database $userPassword = 'LaM1aPassW0rd'; //password inserita dall'utente nel login $hashedUserPassword = crypt($userPassword, '$2a$07$usesomesillystringforsalt$'); if(hash_equals($hashedPassword, $hashedUserPassword)) { echo "Accesso effettuato con successo"; } else { echo "La password inserita non è corretta"; }