我需要将表格users
从cakephp 1.3传输到另一个系统,但我们不希望重置用户的所有密码。该算法如何工作,使用cakephp 1.3来对用户进行哈希处理'密码?
提前致谢!
答案 0 :(得分:0)
嗯......我认为这比我想象的要简单。
Cake身份验证从 Auth 调用密码方法,然后从安全类调用哈希。
//Auth class
function password($password) {
return Security::hash($password, null, true);
}
在安全中,默认使用 sha1 方法连接salt和密码; salt是蛋糕安装过程中生成的随机字符串,其值写在 core.php 文件中。
//Security class
function hash($string, $type = null, $salt = false) {
$_this = Security::getInstance();
if ($salt) {
if (is_string($salt)) {
$string = $salt . $string;
} else {
$string = Configure::read('Security.salt') . $string;
}
}
if (empty($type)) {
$type = $_this->hashType;
}
$type = strtolower($type);
if ($type == 'sha1' || $type == null) {
if (function_exists('sha1')) {
$return = sha1($string);
return $return;
}
$type = 'sha256';
}
//...
}
然后,我需要的是将此实现带到下一个系统并从新用户标记以前的用户。首次登录时,用户将看到一个表单,使用新系统中的新哈希方法输入新密码。