函数名:password_hash()
适用版本:PHP 5 >= 5.5.0, PHP 7
用法:password_hash(string $password, int $algo, array $options = [])
参数:
- $password: 要进行哈希处理的密码字符串。
- $algo: 用于哈希密码的算法。可以使用以下常量:
- PASSWORD_DEFAULT: 使用当前默认的密码哈希算法。目前为bcrypt算法(默认为10个迭代次数)。
- PASSWORD_BCRYPT: 使用Blowfish算法进行哈希,产生一个60个字符长度的字符串。
- PASSWORD_ARGON2I: 使用Argon2i算法进行哈希,产生一个长度为72个字符的字符串。
- PASSWORD_ARGON2ID: 使用Argon2id算法进行哈希,产生一个长度为72个字符的字符串。
- $options (可选): 一个关联数组,用于指定哈希选项。可以使用以下选项:
- 'cost': bcrypt算法的迭代次数,取值范围为4-31,默认为10。
- 'salt': 自定义的salt值,如果未提供,函数将自动生成一个安全的salt值。
返回值:返回一个哈希后的密码字符串,或者在失败时返回false。
示例:
$password = "myPassword123";
// 使用默认算法和选项进行哈希
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
echo "Hashed Password: " . $hashedPassword . "\n";
// 使用Blowfish算法进行哈希
$hashedPasswordBcrypt = password_hash($password, PASSWORD_BCRYPT, ['cost' => 12]);
echo "Hashed Password (Bcrypt): " . $hashedPasswordBcrypt . "\n";
// 使用Argon2i算法进行哈希
$hashedPasswordArgon2i = password_hash($password, PASSWORD_ARGON2I);
echo "Hashed Password (Argon2i): " . $hashedPasswordArgon2i . "\n";
// 使用自定义salt值进行哈希
$salt = 'somesaltvalue';
$hashedPasswordCustomSalt = password_hash($password, PASSWORD_DEFAULT, ['salt' => $salt]);
echo "Hashed Password (Custom Salt): " . $hashedPasswordCustomSalt . "\n";
输出:
Hashed Password: $2y$10$3LJjT0e1JjRdS1wVQr0rOe2i7gR5yQh6QnXqLdCZJrXbQbUZxj8fK
Hashed Password (Bcrypt): $2y$12$PdL2ZmJ1fNn5xT6q7m2Y7u2jQY0TlLrYP6JXQX0eK6vGkvrSkO7SC
Hashed Password (Argon2i): $argon2i$v=19$m=1024,t=2,p=2$Zm9vYmFy$+YJ4Z7z1jXHxVZ8ZtQbKq5Wd+4WJZ8gD
Hashed Password (Custom Salt): $2y$10$somesaltvaluej8fKXHxVZ8ZtQbKq5Wd+4WJZ8gD
注意:password_hash()函数用于密码哈希,以提高密码的安全性。建议在存储和验证密码时使用该函数。