1

我将 ZfcUser 与 BjyAuthorize 一起使用,一切正常。在我正在工作的项目中,我有一个旧数据库,其中包含使用 MySQL 函数“密码”加密的用户帐户和密码,我的问题是是否可以在不向所有用户发送信息的情况下将密码重新哈希为 ZfcUser 密码类型?我的目标是让老用户使用他的旧密码登录到新系统,并且脚本以某种方式将此密码转换为 ZfcUser 标准。

4

1 回答 1

2

好的,我找到了解决方案,首先我在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 密码。也许它会帮助某人。

于 2013-01-02T16:18:06.763 回答