我目前在rails应用程序中有一个users表,其中的密码使用devise / bcrypt加密。
该表如何迁移以与其他应用程序一起使用(反应+无轨后端)?我将无法使用现有的数据库。将需要为新应用将数据复制到新表中。
在新系统上是否可以使用相同的bcrypt加密逻辑,还是必须让用户更改密码?
答案 0 :(得分:0)
您很幸运;您正在使用well defined密码哈希(太好了!)。它尚未正式标准化,但由于它通常被使用和实施,因此不会造成重大问题。当然,今天有更好的替代方法,例如scrypt和Argon2,但是bcrypt可能就足够了-如果正确使用,则工作系数设置得很高,并且密码当然足够安全。
由于它是标准化的并且很常用,因此很有可能可以找到大多数编程语言中的实现。但是,如果您遇到问题,则很可能是由于编码问题而引起的。最重要的是,bcrypt作用于 bytes 而不是密码。您应该使用相同的字符编码作为密码(建议使用UTF-8),以确保实现兼容。在切换之前,请确保使用不常见的字符进行测试,然后将相当一部分用户留在黑暗中。