我偶然发现这个问题早些时候,这让我开始思考。每个人都遇到过这样的系统,要求你每 x 天更改一次密码,并且不能重复使用你最近的 y 个密码。这种事情总是让我感到不安——旧密码是如何存储的?旧密码不应该被完全删除吗?不这样做不是很不安全吗?
这里我是否遗漏了什么或者忘记考虑什么了?
答案1
密码可以使用以下方式存储哈希不存储密码,而是存储代表密码的数字。哈希通常无法恢复成密码,因此几乎没有机会通过安全漏洞让任何人获得原始密码。例如,一个简单的哈希可能会分配 A=1 B=2 C=3 等...然后将密码中相应字母的所有值相加。如果您以前使用过该密码,哈希将始终匹配,但无法通过了解哈希来获取原始密码。
因此,即使不知道密码是什么,也完全可以知道以前是否使用过该密码。但是,无论某个网站是否使用这种方法……您都无法确定。
编辑 - 请注意,上面的示例非常简单,仅用于传达哈希的概念。这不是您在现实世界中计算哈希的方式,尤其是因为会产生相同哈希的密码很普遍。
编辑 2 - 更好的链接可能是http://en.wikipedia.org/wiki/Cryptographic_hash_function,在密码学的背景下描述了哈希。 前一个哈希链接更多地在分组数据的背景下讨论了它们,它们也可以用于分组数据。