我在BjyAuthorize上使用ZfcUser,一切都很好。在项目中,我正在工作,我有一个旧的数据库,其中包含用户帐户和密码加密与MySQL函数‘密码’,我的问题是,是否有可能重新哈希密码到ZfcUser密码类型,而不发送信息给所有用户?我的目标是老用户登录到新系统与他的旧密码和脚本以某种方式转换这个密码到ZfcUser标准。
发布于 2013-01-03 00:18:07
好了,我找到了解决方案,首先我在php中找到了MySQL密码函数:
function mysql_password_hash($input, $hex = true)
{
$sha1_stage1 = sha1($input, true);
$output = sha1($sha1_stage1, !$hex);
return strtoupper('*'.$output);
}然后在ZfcUser\Authentication\Adapter\Db.php中,我添加了以下两行$bcrypt = new Bcrypt();:
if(mysql_password_hash($credential) === $userObject->getPassword())
$this->updateUserPasswordHash($userObject, $credential, $bcrypt); 现在,在登录期间,旧的MySQL密码被重新散列为新的Bcrypt密码。也许这会对某些人有帮助。
https://stackoverflow.com/questions/13859783
复制相似问题