gpt4 book ai didi

ruby-on-rails - has_secure_password 是否使用任何形式的加盐?

转载 作者:行者123 更新时间:2023-12-03 05:30:57 24 4
gpt4 key购买 nike

我想使用has_secure_password在数据库中存储加密密码。我在互联网上找不到 has_secure_password 是否使用任何形式的加盐。如果使用盐腌,它是如何工作的?谁能帮我澄清一下吗?

泰斯

最佳答案

has_secure_password使用bcrypt-rubybcrypt-ruby自动为您处理盐的存储和生成。来自 bcrypt-ruby 的典型哈希值看起来像这样:$2a$10$4wXszTTd7ass8j5ZLpK/7.ywXXgDh7XPNmzfIWeZC1dMGpFghd92e 。使用以下函数在内部分割该哈希值:

def split_hash(h)
_, v, c, mash = h.split('$')
return v, c.to_i, h[0, 29].to_str, mash[-31, 31].to_str
end

对于该函数生成的示例哈希:

  • 版本:2a
  • 成本:10
  • 盐:$2a$10$4wXszTTd7ass8j5ZLpK/7。
  • 哈希值:ywXXgDh7XPNmzfIWeZC1dMGpFghd92e

== -BCrypt::Password的功能提取盐并将其应用于传递的字符串:

BCrypt::Password.create('bla') == 'bla' # => true

关于ruby-on-rails - has_secure_password 是否使用任何形式的加盐?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10139954/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com