我有一个带有 PHP pass + salt md5 加密的旧数据库,我正在尝试将其与 CakePHP 一起使用,但蛋糕加密结果与我的不匹配:
$pass = 'francis';
$data['raw_pass'] = $pass;
$data['cake_hash_pass'] = Security::hash($pass, 'md5', $use_salt);
$data['php_md5_pass'] = md5($pass . ($use_salt ? '123' : ''));
var_dump($data);
结果$use_salt = false;
如下:
array
'raw_pass' => string 'francis'
'cake_hash_pass' => string 'd0ab7fe6c314f4fe5b6c18a0157c96b4'
'php_md5_pass' => string 'd0ab7fe6c314f4fe5b6c18a0157c96b4'
匹配,没问题。但是当我加盐时$use_salt = true;
array
'raw_pass' => string 'francis' (length=7)
'cake_hash_pass' => string '74055e005d086abb69c1f82e8bf1f061' (length=32)
'php_md5_pass' => string '8d709b4b6461aef614529a83d883c64b' (length=32)
结果不一样......我有点卡在这里,我可以阅读 CakePHP 文档:
"布尔 $salt 可选 false
如果为真,则自动将应用程序的盐值附加到 $string (Security.salt)"
正在使用“。” 在$pass . '123'
不附加?
另外,在我的 core.php 文件中:
/**
* A random string used in security hashing methods.
*/
Configure::write('Security.salt', '123');