我需要了解一下,如果我们没有在数据库中存储实际密码,那是因为安全原因。我们通常存储单向加密密码。现在,如果这是真的,我们不想改变密码,一些知名的网站如何发现新密码非常接近或部分匹配旧密码,并且他们提示我们改变它。要发生这种情况,他们将不得不将旧密码存储在某个地方,或者需要双向加密的密码才能再次解密。重置新密码与旧密码匹配
0
A
回答
1
有两种可能性:
- 通常,当您更改密码,您首先需要输入旧密码,以确认你是你。该网站可能会暂时将旧密码保存在内存中,以便它可以将旧密码与新密码进行比较。
- 当您输入新密码时,它可以检查简单修改数量的哈希值是否映射到旧密码的哈希值。
例如,如果您在您的新密码为“password7”型,那么该网站可能会做一些检查,如下列:
password_hash("password0", old_salt) == value stored in database?
password_hash("password1", old_salt) == value stored in database?
password_hash("password2", old_salt) == value stored in database?
password_hash("password3", old_salt) == value stored in database?
password_hash("password4", old_salt) == value stored in database?
password_hash("password5", old_salt) == value stored in database?
password_hash("password6", old_salt) == value stored in database?
password_hash("password7", old_salt) == value stored in database?
password_hash("password8", old_salt) == value stored in database?
password_hash("password9", old_salt) == value stored in database?
这将是非常,非常缓慢如果他们使用了正确的密码哈希算法(如bcrypt或scrypt),但如果在某些实现中实际完成这项操作,我不会感到惊讶。
当然,也有第三种可能性,愚蠢的网站从未散列您的密码在第一位!
+0
感谢您的合理回答。但是这似乎是一种高度概率的方法。如何确定新密码的字谜。也是最接近的anagram,例如,password6的hash可能与password7的hash或7password的hash非常不同。如果是这样,我会再次认为这个问题仍然是开放的。 – siddhusingh
相关问题
- 1. 匹配密码
- 2. 重置密码或提供旧密码的安全方法
- 3. 在mysql中更改用户密码,检查旧密码匹配并强制新密码?
- 4. 验证用户密码与数据库中的密码匹配
- 5. 重置加密密码
- 6. 使用C#在Active Directory中重置用户密码后,旧密码和新密码都可以使用
- 7. 如何在春季安全中更改密码时匹配旧密码?
- 8. 会员ChangePassword(散列)匹配旧密码字段的当前密码
- 9. 非常重的密码匹配查询
- 10. 带密码的密码重置laravel 4.2
- 11. 如何检查旧密码并将其更新为新密码?
- 12. 更改密码时验证旧密码
- 13. 检查密码是否与jquery匹配
- 14. Jquery检查密码与php + Json匹配
- 15. Ruby on Rails在配置文件页面上使用Modal更改/更新密码验证旧密码,添加新密码,确认新密码
- 16. md5密码不匹配
- 17. ng模式密码匹配
- 18. 匹配的密码恢复
- 19. 哈希密码不匹配
- 20. 密码匹配angularjs验证
- 21. Angularjs:匹配密码太快?
- 22. JavaScript密码匹配只匹配空白
- 23. ASP.Net密码重置时的密码重置为“无效令牌”,密码为
- 24. PHP密码重置
- 25. Node.js密码重置
- 26. Webmatrix重置密码
- 27. Laravel重置密码
- 28. MVC验证更改密码。当前密码与新密码
- 29. 重置密码不会保存新密码CakePHP 2.0
- 30. 更改旧密码
这里真正的问题是糟糕的密码规则。通过让用户定期更改密码,您可以确保用户的密码较差,并且更可能将其写在“正面”笔记上。新的NIST提出的规则(800-63-3:数字认证指南)将此称为不应该做的练习。不要:1.需要组合规则2.允许提示3.需要例行密码过期。请参阅[新密码规则](https://nakedsecurity.sophos.com/2016/08/18/nists-new-password-rules-what-you-need-to-know/)。 OTOH您的组织可能对使用失败的做法更感兴趣。 – zaph