📅  最后修改于: 2023-12-03 15:09:27.741000             🧑  作者: Mango
密码哈希是一种将密码转换为不可逆字符串的过程,可以用于保护用户密码的安全性。在 PHP 中,我们可以使用不同的哈希算法对密码进行哈希处理。
PHP 中常用的哈希函数有 md5()
、sha1()
、password_hash()
和 crypt()
等。其中,md5()
和 sha1()
不再建议用于密码哈希,因为它们已经被证明不够安全。
而 password_hash()
和 crypt()
则具有更高的安全性,在 PHP 5.5 及以上版本中引入了 password_hash()
函数,其默认使用 bcrypt 算法进行哈希处理。而 crypt()
函数则可以使用不同的哈希算法,如 DES、Blowfish、MD5、SHA-256、SHA-512 等等。
以下是使用 password_hash()
函数哈希密码的代码片段:
$password = '123456';
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
echo $hashed_password;
以上代码会输出一个类似 $2y$10$0mUzH6UkpzEjK6OVmkFoyuJoZalPvZLEjgU6oruGMUH1WCsx6CUeK
的字符串,表示经过哈希处理后的密码。
当用户登录时,我们需要验证其输入的密码是否正确。可通过 password_verify()
函数来验证原始密码和哈希密码是否匹配。
以下是验证哈希密码的代码片段:
$raw_password = '123456';
$hashed_password = '$2y$10$0mUzH6UkpzEjK6OVmkFoyuJoZalPvZLEjgU6oruGMUH1WCsx6CUeK';
if (password_verify($raw_password, $hashed_password)) {
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
以上代码中,password_verify()
函数会返回 true
或 false
,用于判断原始密码和哈希密码是否匹配。
密码哈希是保护用户密码安全性的重要手段。在 PHP 中,我们可以使用 password_hash()
和 crypt()
等函数进行哈希处理,同时使用 password_verify()
等函数验证哈希密码。