我应该在Cakephp 2.4.5中覆盖Security :: _ crypt()以使用blowfish吗?

时间:2014-02-19 16:24:51

标签: php cakephp cakephp-2.4

Cakephp 2.4.5中的

_crypt()使用 $ 2a $ ,但建议使用 $ 2y $ 而不是 $ 2a $ 正如人们可以在这里阅读的那样,http://www.php.net/security/crypt_blowfish.php。似乎在Cakephp 2.x中不会修改_crypt(),因为它已经在Cakephp 3.0中进行了修改。
这是 Cakephp 2.4.5

中的_crypt()
protected static function _crypt($password, $salt = false) {
    if ($salt === false) {
        $salt = self::_salt(22);
        $salt = vsprintf('$2a$%02d$%s', array(self::$hashCost, $salt));
    }

    if ($salt === true || strpos($salt, '$2a$') !== 0 || 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 '';
    }
    return crypt($password, $salt);
}

这是来自 Cakephp 3.0 的_crypt():

   protected static function _crypt($password, $salt = false) {
     if ($salt === false) {
        $salt = static::_salt(22);
        $salt = vsprintf('$2y$%02d$%s', array(static::$hashCost, $salt));
    }

    if ($salt === true || strpos($salt, '$2y$') !== 0 || strlen($salt) < 29) {
        throw new Error\Exception(sprintf(
            'Invalid salt: %s for blowfish Please visit http://www.php.net/crypt and read the appropriate section for building blowfish salts.',
            $salt
        ));
    }
    return crypt($password, $salt);
}  

如果我使用Cakephp 3.0中的_crypt()代码覆盖Cakephp 2.4.5中的_crypt(),我会破坏什么?它们几乎是一样的。 我是Cakephp的新手,需要一些建议。

0 个答案:

没有答案