CakePHP BlowfishPasswordHasher由于盐而无效的密码?

时间:2014-08-12 04:39:37

标签: php cakephp authentication bcrypt blowfish

我试图在cakephp网站上执行简单的身份验证教程,但我得到了#34; Invalid Salt"尝试登录用户时出现错误消息。

  • 密码正在加密并插入数据库
  • 数据库列足以容纳整个字符串

在CORE \ Utility \ Security.php _crypt中,它会检查我的盐是否以" $ 2y $"," $ 2x $"或" $ 2a开头$"但他们。我用

加密它们
if (isset($this->data[$this->alias]['password'])) {
        $passwordHasher = new BlowfishPasswordHasher();
        $this->data[$this->alias]['password'] = $passwordHasher->hash(
            $this->data[$this->alias]['password']
        );
    }

谁能告诉我为什么我的盐无效?我不明白他们为什么不从预期的字符串开始?

2 个答案:

答案 0 :(得分:2)

我想出来!!!!!

我的Php版本是5.2,为了使河豚正常工作,它应该是5.3或更高。我把它改为5.5,现在它工作正常。 YAY !!

答案 1 :(得分:0)

你的盐无效(你已经确定它不是),或它少于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 '';
}