password_hash() 函數用於偵測雜湊值是否符合指定的選項。
PHP 版本需求: PHP 5 >= 5.5.0, PHP 7
文法
bool password_needs_rehash ( string $hash , int $algo [, array $options ] )
參數說明:
hash: 一個由password_hash() 所建立的雜湊值。
algo: 一個用來在雜湊密碼時指示演算法的密碼演算法常數。
options: 一個包含有選項的關聯陣列。目前支援兩個選項:salt,散列密碼時加的鹽(幹擾字串),以及cost,用來指明演算法遞歸的層數。這兩個值的範例可在crypt() 頁面找到。省略後,將使用隨機鹽值與預設cost。
傳回值
此函數偵測指定的雜湊值是否實作了提供的演算法和選項。 如果沒有,需要重新產生雜湊值。
實例
password_needs_rehash() 用法
<?php $password = ' rasmuslerdorf ' ; $hash = ' $2y$10$YCFsG6elYca568hBi2pZ0.3LDL5wjgxct1N8w/oLR/jfHsiQwCqTS ' ; //當硬體效能改善時,cost 參數可以再修改$options = array ( ' cost ' => 11 ) ; //根據明文密碼驗證儲存的雜湊if ( password_verify ( $password , $hash ) ) { //偵測是否有更新的可用雜湊演算法 //或cost 發生變化 if ( password_needs_rehash ( $hash , PASSWORD_DEFAULT , $options ) ) { //如果是這樣,則建立新雜湊,取代舊雜湊 $newHash = password_hash ( $password , PASSWORD_DEFAULT , $options ) ; } //使用戶登入} ?>