Rails Devise,如何解密密码?
在rails 3设计中,用户记录有一个encrypted_password和一个password_salt。
如何在控制台中获取用户的密码?如何解密?
in rails 3 devise, a user record has an encrypted_password and a password_salt.
How in the console, can I obtain a user's password? How to unencrypt?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Devise 默认使用 BCrypt 算法,据我所知,该算法无法解密。如果您需要能够解密密码,则需要使用不同的算法,例如 AES。
有一个 gem 扩展了对 Devise 的 AES 支持。
注:我回答这个问题纯粹是出于学术兴趣。建议您继续使用 BCrypt。我鼓励您谨慎行事,因为管理密码是有风险的事情。
Devise by default uses the BCrypt algorithm, which AFAIK is not decrypt-able. If you need to be able to decrypt passwords, you need to use a different algorithm such as the AES.
There is a gem which extends AES support for Devise.
Note: I have answered this question in a purely academic interest. It would be recommended you continue to use BCrypt. I encourage you to exercise severe caution, since managing passwords is risky business.
Devise 使用 BCrypt。您需要修改 USERS 表中的 crypto_password 字段并输入新的加密密码。
您可以在此网站生成新的加密密码:
http://www.bcrypt-generator.com/
Devise uses BCrypt. You need modify the encrypted_password field in the USERS table and put a new encrypted password.
You can generate a new encrypted password in this website:
http://www.bcrypt-generator.com/
我认为这些密码是一种加密方式:您可以获取用户提供的密码,对其进行加密并将其与数据库中的加密密码进行比较(如果匹配 - 尝试成功)。但是数据库中的密码是不可能解密的,因此没有人可以得到所有密码。这是一项安全功能。
I think those passwords are one way encrypted: you can take a password provided by user, encrypt it and compare it to the encrypted one in the database (if matches - successful attempt). But un-encrypting the one in database is not possible, so that noone can get all passwords out. It is a security feature.