php实现计算密码
密码哈希计算
使用PHP内置的password_hash()函数可以安全地计算密码哈希。该函数自动生成盐值并使用当前推荐的算法(如BCrypt)。
$password = "user_password";
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
密码验证
验证用户输入的密码时使用password_verify()函数,该函数会自动处理哈希中的盐值信息。
$userInput = "user_input";
if (password_verify($userInput, $hashedPassword)) {
// 密码匹配
} else {
// 密码不匹配
}
密码强度检查
在哈希前可检查密码强度,使用正则表达式验证复杂度要求。
function isStrongPassword($password) {
return preg_match('/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[^\w\d\s]).{8,}$/', $password);
}
密码哈希选项
password_hash()支持指定算法选项,如BCrypt的cost参数。
$options = [
'cost' => 12,
];
$hashedPassword = password_hash($password, PASSWORD_BCRYPT, $options);
密码哈希重新计算
当算法或参数更新时,可使用password_needs_rehash()检查是否需要重新计算哈希。
if (password_needs_rehash($hashedPassword, PASSWORD_DEFAULT, $options)) {
$newHash = password_hash($password, PASSWORD_DEFAULT, $options);
}






