Sono passato a PHP 7.0 molto di recente e mi chiedevo se password_hash fosse meglio che crearne di propri e utilizzare la funzione crypt. Ho tre esempi di codice e non so quali rendono le password più sicure.
Esempio n. 1 (BCRYPT):
$options = [
'cost' => 12,
];
$hashed_password = password_hash("foo", PASSWORD_BCRYPT, $options);
Esempio n. 2 (PASSWORD_DEFAULT):
$options = [
'cost' => 12,
];
$hashed_password = password_hash("foo", PASSWORD_DEFAULT, $options);
Esempio n. 3 (FUNZIONE CRIPT):
$Blowfish_Pre = '$2y$05$';
$Blowfish_End = '$';
$Allowed_Chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./';
$Chars_Len = 63;
$Salt_Length = 21;
for( $i = 0; $i < $Salt_Length; $i++ )
{
$salt .= $Allowed_Chars[mt_rand(0,$Chars_Len)];
}
$bcrypt_salt = $Blowfish_Pre.$salt.$Blowfish_End;
$hashed_password = crypt($password, $bcrypt_salt);