如何在控制台中获取用户密码?如何解密?
答案 0 :(得分:12)
默认设计使用BCrypt算法,AFAIK无法解密。如果您需要能够解密密码,则需要使用其他算法,例如AES。
有gem扩展了对Devise的AES支持。
注意:我纯粹是出于学术兴趣而回答了这个问题。建议您继续使用BCrypt。我鼓励您谨慎行事,因为管理密码是一项有风险的业务。
答案 1 :(得分:2)
Devise使用BCrypt。您需要修改USERS表中的encrypted_password字段并添加新的加密密码。
您可以在此网站中生成新的加密密码: http://www.bcrypt-generator.com/
答案 2 :(得分:0)
我认为这些密码是加密的一种方式:您可以获取用户提供的密码,对其进行加密并将其与数据库中的加密密码进行比较(如果匹配 - 成功尝试)。但是不能对数据库中的那个进行加密,因此没有人可以获取所有密码。这是一个安全功能。
答案 3 :(得分:0)
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