【问题标题】:Moving users table (with encrypted passwords) to a different application将用户表(使用加密密码)移动到不同的应用程序
【发布时间】:2019-05-08 22:59:01
【问题描述】:

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

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

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

【问题讨论】:

  • 很有可能您可以进一步使用 BCrypt 哈希。特别是如果两个应用程序都是基于PHP的,你应该可以使用password_verify()函数来验证登录密码。
  • 谢谢马丁。正如我的问题中提到的那样,该应用程序正在运行中。

标签: encryption devise passwords bcrypt


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-21
    • 2010-09-16
    • 1970-01-01
    • 2011-11-11
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2015-04-15
    相关资源
    最近更新 更多