gpt4 book ai didi

ruby-on-rails - 如何设计存储和读取盐/哈希?

转载 作者:行者123 更新时间:2023-12-05 05:26:21 25 4
gpt4 key购买 nike

它是如何工作的,这个设计知道加密密码的盐分?它将这些散列存储在哪里,如何保证安全?

最佳答案

这是创建密码的主要文件之一:Devise::DatabaseAuthenticatable

Salt 不存储在数据库中,它是由 BCrypt::Engine.generate_salt() 函数 __bc_salt 运行的 C 程序生成的字符串:

 prefix = "$2a$05$CCCCCCCCCCCCCCCCCCCCC.E5YPO9kmyuRGyh0XouQYb4YMJKvyOeW"
__bc_salt(prefix, cost, OpenSSL::Random.random_bytes(MAX_SALT_LENGTH))

可以在这里找到: BCrypt::Engine

这里有一些其他有趣的代码:BCrypt::Password

据我所知,salt 本身是加密密码中第三个 $ 之后出现的 29 个字符。但是,仅凭这一点并不能告诉您密码,因为您还需要知道基于您的应用 key 的 pepper(通常存储在您的 /config/initializers/secret_token.rb)

结论:为了解密密码,必须使用正确版本的 BCrypt,从应用程序获得 secret token ,并拥有加密密码,我认为在这一点上,用户密码是可能是您最不关心的安全问题,所以我认为它非常安全。

关于ruby-on-rails - 如何设计存储和读取盐/哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26812037/

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