注册表单 - 密码123456:
$pwd = $_POST['pwd'];
$salt = '$2a$10$R.Baj0mvj5doNvtvzDjwP5$';
$password = crypt("$pwd", $salt);
数据库中的哈希:
$2a$10$R.Baj0mvj5doNvtvzDjwPuN/W8Z3n6RVGyM0pM
用户登录时的哈希比较 - 再次输入密码,123456:
$salt = '$2a$10$R.Baj0mvj5doNvtvzDjwP5$';
$crypt_pass=crypt($password,$salt);
The $crypt_pass = $2a$10$R.Baj0mvj5doNvtvzDjwPuN/W8Z3n6RVGyM0pMQB89k2m9nYRIN6O数据库中的密码哈希为:$2a$10$R.Baj0mvj5doNvtvzDjwPuN/W8Z3n6RVGyM0pM
当我用相同的盐对它们进行哈希处理时,为什么它们不匹配?
你正在使用河豚作为你的哈希类型。这将始终为相同的字符串和盐返回不同的值。如果您希望哈希匹配,请使用 SHA 512。
$salt = '$6$rounds=5000$usesomesillystringforsalt$';