使用 bcrypt 散列密码迁移系统

Posted

技术标签:

【中文标题】使用 bcrypt 散列密码迁移系统【英文标题】:Migrating system with bcrypt hashed passwords 【发布时间】:2016-12-11 09:16:54 【问题描述】:

我计划迁移一个使用 php Laravel 开发的系统,该系统使用 bcrypt 对用户密码进行哈希处理,所以只是想知道是否可以以某种方式转换它们以使新的 NodeJS 系统(使用 bcrypt)重用当前密码字段?还是唯一的方法是要求用户重置密码?

【问题讨论】:

【参考方案1】:

您是在询问哈希密码数据(例如存储在服务器上)是否可以在节点中的另一个 bcrypt 实现中使用,或者其他什么?

在节点中使用模块应该使用现有的密码data(正如有人已经建议的那样),但请记住使用与之前在 PHP 中的 bcrypt 实现相同的加盐方法和选项,显然,所以bcrypt 生成与以前相同的数据。只要 bcrypt 的所有选项和输入都相同,node 中的 bcrypt 实现应该会产生相同的结果并且可以使用。

【讨论】:

那么我是否必须从以前的系统中导入相同的密钥才能这样做? 我之前没有看到这个评论,如果你已经回答了,很抱歉。我仍然认为我的答案站得住脚,但如果您仍在处理这个问题(或现在查看此页面的其他人),这可能是一个很好的问题/答案 --> ***.com/questions/26643587/… 另外,我刚刚看到我没有回答您评论中的问题,但答案是肯定的。这是必须的。这就是密钥的全部意义,而不是侮辱您的智力或听起来粗鲁(没有密码破解/密码分析,就无法解密数据)。【参考方案2】:

在 node 中使用 bcryptbcryptjs 模块和现有密码应该正常工作。

【讨论】:

得到了它的工作,但使用 twin-bycrpt 包而不是 bycrypt,但感谢提示。

以上是关于使用 bcrypt 散列密码迁移系统的主要内容,如果未能解决你的问题,请参考以下文章

如何迁移密码哈希?

我应该使用啥列类型/长度将 Bcrypt 散列密码存储在数据库中?

Bcrypt 是用于散列还是加密?有点迷茫

bcrypt 哈希究竟如何防止彩虹表查找?

如何在没有注册页面的情况下在 mongodb 中使用 bcrypt 散列密码?

如何使用散列 bcrypt 版本更新数据库中的每个密码?