假设一个人在知道如何制作好密码之前就使用了一个密码,例如peter123
. 假设他们在考虑更好的密码时,发现他们只能记住随机字符串中的 8 个字母。假设他们在这里选择的特定随机字符串是atwer1414
.
什么是更安全的密码:atwer1414
或atwer1414peter123
?我会假设更长的时间更安全,但是我对散列的了解还不够,无法知道peter123
那里的已知/可猜测的存在是否会泄露有关atwer1414
.
假设一个人在知道如何制作好密码之前就使用了一个密码,例如peter123
. 假设他们在考虑更好的密码时,发现他们只能记住随机字符串中的 8 个字母。假设他们在这里选择的特定随机字符串是atwer1414
.
什么是更安全的密码:atwer1414
或atwer1414peter123
?我会假设更长的时间更安全,但是我对散列的了解还不够,无法知道peter123
那里的已知/可猜测的存在是否会泄露有关atwer1414
.
当然,具有相当或更高复杂性的较长密码(例如您的示例)会产生更安全的密码。
尽管我们不得不说在这种情况下“安全”是什么意思。攻击者不应该能够暴力破解登录。如果攻击者能够获得密码数据库(如果他们不将它们存储为纯文本),那么长而复杂的密码也会增加安全性。
实际上有两种关于密码安全的情况,它们受密码的复杂性和长度的影响。第一个是只能针对黑盒进行测试的攻击者,例如网站的登录。如果您的密码像“密码”一样太琐碎,那么即使有很多安全机制(不包括两因素身份验证),攻击者也可以轻松访问。密码越长,攻击者就越难做到这一点,尤其是因为大多数网站都限制了登录尝试。
第二种情况是数据库泄露,攻击者可以访问密码数据库。密码的安全性,意思是“攻击者能找出我的密码吗?”,不仅取决于您,还取决于网站如何处理所有密码。如果将它们以纯文本形式存储,那么无论它们多么复杂,你都会松懈。不安全但经常发生的是没有盐的简单散列或所有帐户的全局盐。在这种情况下,它有助于拥有一个复杂而长的密码,因为攻击者所做的是根据预先计算的常用密码列表甚至整个组合字典检查数据库中的哈希值。长而复杂的密码意味着攻击需要更多的尝试。一个适当保护的网站应该使用每个用户的盐(也许还有胡椒),使彩虹表和字典几乎毫无用处。这甚至可以保护相当简单的密码,但仍然越长越好(或更安全)。
所以你应该使用长而复杂的密码的原因是第一种情况和第二种情况,以防安全性不当。您还可以看到,实际的安全性还取决于 Web 开发人员,而不仅仅是您的密码。