查詢

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函式
分享連結