English | 简体中文 | 繁體中文
查询

password_hash()函数—用法及示例

「 创建密码的散列(hash) 」


函数名: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()函数用于密码哈希,以提高密码的安全性。建议在存储和验证密码时使用该函数。

补充纠错
上一个函数: password_needs_rehash()函数
下一个函数: password_get_info()函数
热门PHP函数
分享链接