【发布时间】:2011-07-30 04:21:11
【问题描述】:
在 Rails 3 设计中,用户记录有一个 encrypted_password 和一个 password_salt。
如何在控制台中获取用户密码?如何解密?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 devise
在 Rails 3 设计中,用户记录有一个 encrypted_password 和一个 password_salt。
如何在控制台中获取用户密码?如何解密?
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 devise
【讨论】:
Devise 使用 BCrypt。您需要修改 USERS 表中的 encrypted_password 字段并输入新的加密密码。
您可以在本网站生成新的加密密码: http://www.bcrypt-generator.com/
【讨论】:
我认为这些密码是一种加密方式:您可以获取用户提供的密码,对其进行加密并将其与数据库中的加密密码进行比较(如果匹配 - 成功尝试)。但是无法对数据库中的密码进行解密,因此没有人可以获取所有密码。这是一项安全功能。
【讨论】:
class User < ActiveRecord::Base
devise :database_authenticatable...
def verify_password?(password)
encryptor_class = Devise::Encryptors.const_get(Devise.encryptor.to_s.classify)
encryptor_digest = encryptor_class.digest(password, Devise.stretches, self.password_salt, Devise.pepper)
encryptor_digest == self.encrypted_password
end
end
【讨论】: