Должен ли я переопределить Security::_crypt() для использования blowfish в Cakephp 2.4.5?
_crypt() в Cakephp 2.4.5 использует $ 2a $, но рекомендуется использовать $ 2y $ вместо $ 2a $, о чем можно прочитать здесь, http://www.php.net/security/crypt_blowfish.php. Похоже, что _crypt() не будет изменен в Cakephp 2.x, как он был изменен в Cakephp 3.0.
Вот _crypt() из Cakephp 2.4.5:
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);
}
А вот _crypt() из Cakephp 3.0:
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);
}
Что я сломаю, если я использую код _crypt() из Cakephp 3.0 для переопределения _crypt() в Cakephp 2.4.5? Они почти одинаковые. Я новичок в Cakephp и мне нужен совет.