如何迁移密码哈希?

Posted

技术标签:

【中文标题】如何迁移密码哈希?【英文标题】:How to migrate a password hash? 【发布时间】:2011-09-22 03:09:24 【问题描述】:

如果我将密码存储为加盐 MD5 哈希,但想将它们移动到使用 bcrypt,那么执行该转换的最佳方法是什么? (鉴于我无法取回密码)

我应该对 md5 哈希进行 bcrypt 吗?这样做是否存在我不想要的加密含义?

【问题讨论】:

对现有的 MD5 哈希值进行散列可以得到什么?您的应用程序仍然需要知道每个用户的密码使用哪种散列函数进行散列,并可能在身份验证时尝试两者。所以我看不到重新散列的好处。 使用 bcrypt 散列 md5 散列的优点是 in 可以单方面应用于 db。无需等待用户重新输入明文密码。 发现这篇博客文章声称没问题,但不知道这是基于thepileof.blogspot.ca/2012/06/… 【参考方案1】:

通常,网站只是让用户更改密码。如果您将 hash_version 字段添加到您的 users 表,您可以跟踪当前的哈希类型。当有 MD5 的人登录时,让他们更改密码。

在一定时间后,您可以选择使所有剩余的 MD5 密码过期(强制用户重置以登录)。

【讨论】:

以上是关于如何迁移密码哈希?的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 用户迁移到 Rails 设计

ASP.NET Core Identity - 扩展密码哈希

使用 bcrypt 散列密码迁移系统

如何创建一个 laravel 哈希密码

如何哈希密码

加盐密码哈希:如何正确使用