PHP password_hash错误

时间:2013-07-31 09:43:52

标签: passwords hash php salt

我一直在努力了解我正在处理的项目的密码腌制和散列。从对previous question的回复中,我看到password_hash的php手册是一个很好的开始。

然而,当在该页面上试用代码时,我收到一个我无法解决的错误 代码:

<?php
/**
 * Note that the salt here is randomly generated.
 * Never use a static salt or one that is not randomly generated.
 *
 * For the VAST majority of use-cases, let password_hash generate the salt randomly for you
 */
$options = [
'cost' => 11,
'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM),
];
echo password_hash("rasmuslerdorf", PASSWORD_BCRYPT, $options)."\n";
?>

错误:

解析错误:语法错误,第8行/home/content/##/######/html/TESTINGFOLDER/HashNSalt.php中的意外'['

根据手册 -

The above example will output:
$2y$11$q5MkhSBtlsJcNEVsYh64a.aCluzHnGog7TQAKVmQwO9C8xb.t89F.

第8行

 $options = [

有人可以在这里解释为什么我会收到此错误 - 特别是因为我已经从PHP手册本身复制并粘贴到我的测试页面中了吗?我仍处于学习身份验证/ php等的早期阶段,并依赖于手册,stackexchange / overflow来理解为什么事情不会按照他们应该的方式工作。当我在手册中找到的代码不能按预期的方式工作时,我感到非常难过!

1 个答案:

答案 0 :(得分:3)

不是安全问题,只是语法问题。

短数组语法:

$options = [ ... ];

是一个PHP 5.4功能......以前你不得不说array( ... )

您可能没有安装5.4。由于password_hash是PHP 5.5功能,因此您需要更新PHP版本。