CakePHP BlowfishPasswordHasher密码因盐而无效?
我试图在cakephp站点上执行简单的身份验证教程,但当我尝试登录用户时,会收到“Invalid Salt”消息CakePHP BlowfishPasswordHasher密码因盐而无效?,php,cakephp,authentication,bcrypt,blowfish,Php,Cakephp,Authentication,Bcrypt,Blowfish,我试图在cakephp站点上执行简单的身份验证教程,但当我尝试登录用户时,会收到“Invalid Salt”消息 密码正在加密并插入到数据库中 数据库列的长度足以容纳整个字符串 在CORE\Utility\Security.php\u crypt中,它检查我的salt是否以“$2y$”、“$2x$”或“$2a$”开头,但它们不。我正在用密码加密它们 if (isset($this->data[$this->alias]['password'])) { $passw
- 密码正在加密并插入到数据库中
- 数据库列的长度足以容纳整个字符串
if (isset($this->data[$this->alias]['password'])) {
$passwordHasher = new BlowfishPasswordHasher();
$this->data[$this->alias]['password'] = $passwordHasher->hash(
$this->data[$this->alias]['password']
);
}
谁能告诉我为什么我的盐无效?我不明白为什么它们不以预期的字符串开头 您的盐无效(您已经确定无效),或者少于29个字符
//Cake/Utility/Security.php
if ($salt === true || $invalidCipher || strlen($salt) < 29) {
trigger_error(__d(
'cake_dev',
'Invalid salt: %s for %s Please visit http://www.php.net/crypt and read the appropriate section for building %s salts.',
array($salt, 'blowfish', 'blowfish')
), E_USER_WARNING);
return '';
}
//Cake/Utility/Security.php
如果($salt==true | |$invalidCipher | | strlen($salt)<29){
触发错误(
“蛋糕开发”,
'无效的盐:%s对于%s,请访问http://www.php.net/crypt 并阅读构建%s的相应部分。“,
数组($salt,'blowfish','blowfish')
),E_用户警告);
返回“”;
}
我想出来了
我的Php版本是5.2,为了让河豚正常工作,应该是5.3或更高版本。我把它改成了5.5,现在它运行得很好。耶 我的盐不是以正确的字符串开头的。我改写了我的问题。我不明白他们为什么不能正确启动?