[英]I get a parse error, when trying to specify cost benchmark for bcrypt hashing algorithm?
無法弄清楚為什么我的代碼中會出現解析/語法錯誤,該錯誤在我的本地主機服務器上有效,但是當我將其上傳到我的網絡主機時,我得到了語法錯誤:“第3行出現意外的'['”。
我在這里有一個粘貼鏈接: http : //codepad.org/26K93MPG
這是我的代碼:
<?php
$options = [
'cost' => 9,
];
$unhashedPassword = 'testingtesting';
$hashedPassword = password_hash($unhashedPassword, PASSWORD_BCRYPT, $options);
echo $unhashedPassword . "<br>";
echo $hashedPassword;
?>
固定! 這是我修復問題的方式,以及發生問題的簡短說明:
首先,我的本地主機服務器的PHP版本是5.6.4,生產服務器的PHP版本是5.3.29。 由於password_hash()函數是在5.3.7版中首次引入的,因此很明顯它沒有起作用。
其次,我使用的數組語法僅在PHP 5.3或更早版本中允許。 但是舊的語法也沒有使它起作用,那是因為那個時候也沒有在PHP中實現password_hash()函數。
要解決這兩個問題:
1)轉到https://github.com/ircmaxell/password_compat/blob/master/lib/password.php
2)將該庫文件放入文件夾中,並在登錄過程中包含password.php。
3)將數組語法更改為此,它很簡潔:
<?php
include("password_hash_compatibility.php");
$unhashedPassword = 'testingtesting';
$hashedPassword = password_hash($unhashedPassword, PASSWORD_BCRYPT, array("cost" => 9));
echo $unhashedPassword . "<br>";
echo $hashedPassword;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.