我有一个旧的用户数据库,其中包含以我不喜欢的方式散列的密码。我希望在他们登录时将这些哈希更新为新的哈希形式(bcrypt)。
我使用 FOSUserBundle 来管理用户和Elnur 的 bcrypt 包作为安全编码器。有没有一种简单的方法可以插入密码检查机制来添加这种算法:
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(或其规范名称),因此更新部分不可用。