是否有被动的'如何为用户密码实现新的哈希方法?

时间:2016-01-21 13:48:51

标签: passwords fosuserbundle symfony

我有一个旧网站,我使用Symfony3和FOSUserBundle进行了重新设计,并尝试计算如何映射数据库的后勤工作,而不必为所有用户造成问题。

  • ' old'网站在存储之前对密码进行哈希处理: sha1("$salt1$pass$salt2")

  • ' new' site(使用FOSUserBundle)在bundle中的某个地方使用它的Bcrypt默认方法。

以下是" Bcrypt"的正确方法。会员在登录时成为明文密码吗?

使用附加参数Bcrypted临时扩展 Member 实体:

use FOS\UserBundle\Model\User as BaseUser;
class Member extends BaseUser
{
  /* ... */
  protected $Bcrypted=false;
}

然后,一旦会员使用他们通常的(sha1())密码登录,他们就会正常登录,但有一个功能,如下面的运行 - 不幸的是我无法看到在哪里/如何/如果这个需要使用FOSUserBundle完成:

public function updatePassword($member) {
  if Bcrypted==false then {
     /* ... Use whatever FOSUserBundle's "Change Password" function is to rehash the password in the database */
     $member->setBcrypted('true');
  }
}

然后我可以关注数据库,如果/当所有用户最终都登录并在转换的数据库中使用了密码哈希,那么我可以删除该函数和$Bcrypted参数

0 个答案:

没有答案