PHP - password_hash 函式



PHP 雜湊password_hash() 函式用於使用給定的預設密碼和強大的“單向”雜湊演算法建立密碼雜湊。 密碼雜湊是一種安全儲存密碼的方式,方法是將其轉換為固定長度的字元字串,通常不可逆。

此函式與crypt() 函式相容,因此,由 crypt() 函式建立的密碼雜湊可以與password_hash() 函式一起使用。

它接受三個引數。 如果省略“選項”引數,則將建立隨機鹽,並將使用預設成本。

語法

以下是 PHP 雜湊password_hash() 函式的語法:

password_hash(string $password, string $algo, array $options = []): string

引數

以下是此函式的引數:

  • password - 給定的使用者密碼。
  • algo - 一個密碼演算法常量,表示雜湊密碼時使用的演算法。
  • options - 包含選項的關聯陣列。

返回值

此函式返回雜湊密碼。

示例 1

以下是 PHP 雜湊password_hash() 函式的基本示例:

<?php	
   $passw = "53nh46u74m3nt3";
   echo "Given password: $passw";
   $opts = [ "cost" => 15 ];
   echo "\nGenerating password hash.....";
   $hashp = password_hash($passw, PASSWORD_BCRYPT, $opts);
   echo "\nGenerated password hash: $hashp";
   echo "\nPassword length: ".strlen($hashp);
?>

輸出

執行上述程式後,將顯示以下輸出:

Given password: 53nh46u74m3nt3
Generating password hash.....
Generated password hash: $2y$15$4lM81sKwdN9vCLUKQ2h2yup.vZVcFwaa2.lCOG.Fg1.bo1X/MZvJy
Password length: 60

示例 2

以下是 PHP 雜湊password_hash() 函式的另一個示例。 我們使用此函式從給定的密碼“53nh46u74m3nt3”建立密碼雜湊。 如果我們傳遞自定義鹽引數,它將丟擲錯誤,因為它不再受支援:

<?php	
   $passw = "53nh46u74m3nt3";
   echo "Given password: $passw";
   $opts = [ "cost" => 15, "salt" => "salteadoususuueyryy28yyGGtttwqtwtt" ];
   echo "\nGenerating password hash.....";
   $hashp = password_hash($passw, PASSWORD_BCRYPT, $opts);
   echo "\nGenerated password hash: $hashp";
   echo "\nPassword length: ".strlen($hashp);
?>

輸出

上述程式產生以下輸出:

Given password: 53nh46u74m3nt3
Generating password hash.....
Generated password hash: $2y$15$woSgOZK/0Y3Qj/7iAxD0Bee2O3ohaaufBcq46gwlVRw0dNoR01vpi
Password length: 60
PHP Warning:  password_hash(): The "salt" option has been ignored, 
since providing a custom salt is no longer supported in /home/cg/root/55817/main.php on line 6
php_function_reference.htm
廣告