【问题标题】:How to override symfony password check to be able to check against multiple types of hashes如何覆盖 symfony 密码检查以能够检查多种类型的哈希
【发布时间】:2012-03-28 15:21:09
【问题描述】:

我有一个旧的用户数据库,其中包含以我不喜欢的方式散列的密码。 我希望在他们登录时将这些哈希更新为新的哈希形式 (bcrypt)。

我使用 FOSUserBundle 来管理用户并使用Elnur's bcrypt bundle 作为安全编码器。有没有一种简单的方法可以插入密码检查机制来添加这种算法:

if passwordHash is using old format
  oldFormatHash := hash userGivenPassword in the old way
  if oldFormatHash == passwordHash
     login ok
     update password in database with new hash format
  else
     login ko
else
  use default 

我考虑过扩展当前的安全编码器,但 isPasswordValid 方法没有要检查的帐户 id(或其规范名称),因此更新部分不可用。

【问题讨论】:

    标签: php symfony fosuserbundle


    【解决方案1】:

    如果它可以帮助遇到此问题的人,这是我使用的解决方案。 在数据库中存储密码的旧方法不使用盐。所以我更新了此列以包含用户的 ID。

    然后很容易使用 salt 参数创建我自己的安全编码器来更新用户的密码哈希。

    【讨论】:

      猜你喜欢
      • 2019-04-07
      • 2015-09-28
      • 2013-10-24
      • 1970-01-01
      • 1970-01-01
      • 2020-07-19
      • 1970-01-01
      • 1970-01-01
      • 2021-07-13
      相关资源
      最近更新 更多