首页 > 解决方案 > 将用户表(使用加密密码)移动到不同的应用程序

问题描述

我目前在 Rails 应用程序中有一个用户表,其中密码使用 devise/bcrypt 加密。

如何迁移此表以与另一个应用程序(反应 + 非 Rails 后端)一起使用?我将无法使用现有的数据库。需要为新应用复制新表中的数据。

是否可以/有权在新系统上使用相同的 bcrypt 加密逻辑,还是我必须让用户更改密码?

标签: encryptiondevisepasswordsbcrypt

解决方案


你很幸运;您正在使用定义明确的密码哈希(对您有好处!)。它尚未正式标准化,但由于它经常被使用和实施,因此不会造成重大问题。当然,今天还有更好的选择,例如 scrypt 和 Argon2,但 bcrypt 可能就足够了——如果使用得当,工作系数设置得很高,密码当然也足够安全。

因为它是标准化的并且非常常用,所以您很可能可以在大多数编程语言中找到实现。但是,如果您遇到问题,则更有可能是由于编码问题而不是其他原因。最重要的是,bcrypt 作用于字节而不是密码。您应该对密码使用相同的字符编码(推荐使用 UTF-8),以确保您的实现兼容。确保在切换之前使用不常见的字符进行测试,并将相当一部分用户留在黑暗中。


推荐阅读