我正在創建一個腳本,並希望將用戶密碼轉換爲使用password_hash函數的散列,但是我想使hashing動態確保password_hash函數實際上存在,所以我寫了以下函數根據可用的函數返回散列。PHP函數根據可用性使用password_hash,hash或MD5
function generateHash($hashpwd){
if (function_exists('password_hash')) {
return password_hash($hashpwd, PASSWORD_DEFAULT);
} elseif (function_exists('hash')) {
return hash('sha512', $hashpwd);
} else {
return md5($hashpwd);
}
}
這個方法有什麼問題,或者它會起作用嗎?還我以下列方式使用password_hash創建哈希:
password_hash($hashpwd, PASSWORD_DEFAULT);
但大多數地方我見過的例子語法格式如下:
password_hash($hashpwd, PASSWORD_DEFAULT)."\n";
區別是\ n爲\ n需要什麼?
你嘗試了嗎? –
就像警告一樣,當調用腳本的PHP可執行文件發生變化時,會發生什麼情況?就像在PHP中升級到5.5以後一樣,'password_hash'可用。如果以前使用sha512散列,散列會發生什麼? –
* 「但大多數地方我已經看到了下面的格式示例語法: password_hash($ hashpwd,PASSWORD_DEFAULT)」 \ n 「;」 * - 你應該讀作[該用戶貢獻注](HTTP:// PHP .net/manual/en/function.password-hash.php#121017)。 –