繁体   English   中英

如何在设计中知道:encrypted_pa​​ssword的纯文本?

[英]How to know plain text of :encrypted_password, in devise?

如果我使用has_secure_password,则我有白名单: passwordpassword_confirmationpassword_digest password是纯文本password_digest ,其通过bcrypt加密。

但是当我将devise与我的用户模型一起使用时,它只有一个encrypted_password字段,我不知道如何知道password纯文本。 模式没有password field 我通常使用rails consle进行调试。 所以,任何人都可以帮助我如何知道的纯文本encrypted_password

无法从encrypted_pa​​ssword字段获取纯文本密码。 但是,您可以通过设置用户模型的password属性来更改密码并将其设置为您选择的任何字符串。 例如:

user = User.find(34)
user.password = "some password"
user.save!

使用哈希函数存储密码的全部要点是,没有办法反转哈希函数。 这就是为什么它被称为单向功能的原因。

唯一的方法是尝试所有可能的密码,直到哈希函数产生与您相同的哈希为止。 像哈希猫这样的密码破解者可以做到这一点,但是它们使用GPU来并行化该过程。 如果您选择了一个长而复杂的密码,那么完成此操作的时间将比攻击者可以完成的时间更长。

使用在CPU时间或内存需求方面都很昂贵的哈希函数对于保护密码也很重要。 请参阅密码密钥派生功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM