這個password_needs_rehash()函數可以檢查給定的散列是否與給定的選項匹配。
用法
boolean password_needs_rehash ( string $hash , integer $algo [, array $options ] )
password_needs_rehash() 函數可以檢查提供的散列是否實現了提供的算法和選項。如果不是,則假定散列需要重新散列。
如果散列可以重新散列以匹配給定的算法和選項,則 password_needs_rehash() 函數可以返回 true,否則返回 false。
示例
<?php
$passw01 = "53nh46u74m3nt3";
$hashp03 = '$argon2i$v=19$m=1024,t=2,p=2$d1JJWnNHMkVEekZwcTFUdA$zeSi7c/Adh/1KCTHddoF39Xxwo9ystxRzHEnRa0lQeM';
$algo03 = PASSWORD_ARGON2I;
$test03 = password_verify($passw01, $hashp03);
$conf03 = password_needs_rehash($hashp03, $algo03);
if($conf03 == true) {
echo "HASH NEEDS TO BE REHASHED!<br>SUGGESTED FOR THE NEW HASH:<br>";
$nwhas03 = password_hash($passw01, $algo03);
echo $nwhas03;
} else {
echo "HASH DOES HAS NO NEED TO BE REHASHED!<br>";
echo $hashp03;
$getinfo03 = password_get_info($hashp03);
echo "<br><br>algo = " . $getinfo03["algo"] . "<br>algoName = " . $getinfo03["algoName"] . "<br>memory_cost = "
. $getinfo03["options"]["memory_cost"] . "<br>time_cost = " . $getinfo03["options"]["time_cost"]
. "<br>threds = " . $getinfo03["options"]["threads"] . "<br><br>";
}
?>
輸出
HASH NEEDS TO BE REHASHED!<br>SUGGESTED FOR THE NEW HASH:<br>$argon2i$v=19$m=65536,t=4,p=1$dDVDRWFFTS9ObjFQMmhuRw$1uWmsNTQBbrwXtQPB7PQqWWIlcd0XBqg2mEDHGaElew
相關用法
- PHP password_verify()用法及代碼示例
- PHP parse_ini_string()用法及代碼示例
- PHP parse_str()用法及代碼示例
- PHP parse_ini_file()用法及代碼示例
- PHP parse_url()用法及代碼示例
- PHP pack()用法及代碼示例
- PHP pathinfo( )用法及代碼示例
- PHP pathinfo()用法及代碼示例
- PHP prev()用法及代碼示例
- PHP preg_split()用法及代碼示例
- PHP preg_filter()用法及代碼示例
- PHP pi( )用法及代碼示例
- PHP preg_match_all()用法及代碼示例
- PHP print_r()用法及代碼示例
- PHP previous()用法及代碼示例
- PHP php_strip_whitespace()用法及代碼示例
- PHP pos()用法及代碼示例
- PHP popen()用法及代碼示例
- PHP property_exists()用法及代碼示例
注:本文由純淨天空篩選整理自 PHP - password_needs_rehash() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。