Rails has_secure_password 更改 BCrypt 成本因素(又名工作因素)

Posted

技术标签:

【中文标题】Rails has_secure_password 更改 BCrypt 成本因素(又名工作因素)【英文标题】:Rails has_secure_password change BCrypt cost factor (aka work factor) 【发布时间】:2014-02-11 11:15:36 【问题描述】:

在 Rails 中使用 has_secure 密码时,如何更改 BCrypt 在创建密码摘要时使用的默认成本因子?

我想这样做是因为使用的默认成本因子——10——显然有点低(this post 建议至少将其设置为 12)。

【问题讨论】:

【参考方案1】:

这可以通过将以下代码放入您的配置文件中来完成(例如 production.rb、development.rb、test.rb、application.rb 等)

require 'bcrypt'
BCrypt::Engine::DEFAULT_COST = 12

请注意,您可以检查您的密码摘要,以了解加密它们时使用的成本因素。例如。在

$2a$12$k50jCqk8Bijj.wYxg69QBOg.t4VNMj/VmSkPCfeWWoOW

成本因子是12 紧跟第二个$ 的数字

【讨论】:

以上是关于Rails has_secure_password 更改 BCrypt 成本因素(又名工作因素)的主要内容,如果未能解决你的问题,请参考以下文章

rails--bcrypt对密码加密

随机生成的密码 Rails 3.1

has_secure_password 是不是使用任何形式的盐渍?

Ruby on Rails 无需密码即可更新用户属性

ruby 用户模型w / has_secure_password,可以更新

user.save 在控制台中返回 false,但通过 UI 完成时返回 true