Tag:

Rails 3 / Devise:密码盐不再被创建?

我一直在研究一个项目,现在使用Devise进行用户身份validation。 无论何时创建用户,它都会为它们生成密码盐以及加密密码。 当我进入这个项目的尾端时,我正在测试用户注册,并注意到我的新角色没有在这些新用户的数据库中创建密码盐,而我的老用户都有盐。 新用户可以签到好,但我担心为什么Devise不再创造盐。 我遇到的Devise唯一的奇怪之处就是当我升级模块并记住日志说有关删除加密的内容时,因为bcrypt现在是默认加密,或者是那种效果。 我这样做了……不确定这是否与当前问题有关。 另外,想想也许是我的项目是蠢蠢欲动的,我从零开始创建了一个全新的Rails应用程序并添加了Devise,甚至这个新项目也没有为用户创建盐。 在Devise中有一种设置密码盐的新方法,或者有人知道为什么不再生成盐吗? 不幸的是,Devise wiki在这个问题上没有太多可说的内容,到目前为止谷歌一直没有成功。 或者……首先是否需要加盐? 我想,似乎更安全。 我的用户/设计配置如下。 配置/初始化/ devise.rb Devise.setup do |config| config.mailer_sender = “mail@domain.com” require ‘devise/orm/active_record’ config.authentication_keys = [ :login ] config.stretches = 10 config.encryptor = :bcrypt # Setup a pepper to generate the encrypted password. config.pepper = “79c2bf3b[…]” end 应用程序/模型/ user.rb devise :database_authenticatable, :registerable, :confirmable, :recoverable, :rememberable, […]

盐如何在Rails的has_secure_password中工作

根据我从盐析中理解的更加安全的加密密码,我会生成一个随机数(盐)并将其与散列密码一起存储在用户记录中(例如)。我会将盐与明文连接起来密码,然后加密(哈希)。 产生的哈希将难以破解。 将重复此过程以validation密码。 看看has_secure_password和bcrypt_ruby (披露:我不是安全专家)我不知道如何做到这一点,因为用户记录中存储的唯一内容是哈希密码。 盐在哪里?