【问题标题】:Encrypting password in mysql using query使用查询在mysql中加密密码
【发布时间】:2019-09-12 20:43:35
【问题描述】:

我有一个 Rails 应用程序,它创建用户并将其存储在身份表中。我看到它使用 Devise gem 并像这样将密码存储在 mysql 中

original password: passphrase
encrypted value stored in mysql table: $2a$10$isSx/Z1DRaPJKETkeph/Ie.C5BDTls4g/AhVUHvsODIevtZEazJYm

有没有办法可以使用 mysql 更新查询来更新此密码。我想在查询中输入原始密码,它应该以加密形式存储。我尝试了 ENCRYPT 等,但它们使用的是不同的算法,而不是设计正在使用的算法。

【问题讨论】:

  • 在 MySQL 查询中执行此操作也是一个坏主意,并且可以在慢查询日志/进程列表/服务器日志和其他我可能忘记提及的位置中看到纯密码如果 MySQL 将支持 bcrypt (Blowfish) ..

标签: mysql ruby-on-rails


【解决方案1】:

这些密码实际上是经过散列而不是加密的。根据前缀,这是 bcrypt 算法版本 2a,成本参数为 10。

MySQL 不支持使用 bcrypt 进行散列。您应该在应用程序中散列密码。 Devise 使用 bcrypt gem 来实现这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    相关资源
    最近更新 更多