已知密码长度和安全注意事项

信息安全 密码 蛮力
2021-09-08 05:31:44

许多人经常吹嘘他们的密码长度,例如“是的,没有人会破解我的密码,因为它有 22 个字符长。” 我在想,如果你知道他们密码的确切长度,你基本上可以减少暴力破解密码所需的空间和计算。我的问题是,有谁知道它减少了多少?

如果我知道密码长度为 22 个字符,显然您不会尝试任何长度不是 22 个字符的潜在密码。

tl; dr 如果您知道确切的字符长度,破解密码的速度有多快?

3个回答

如果我们假设密码中有 128 个可能的字符 (2^7),那么就有 2^154 个可能的 22 个字符的密码。

有 2^147 + 2^140 + ... 较短的密码,与 2^147 几乎相同。因此,如果您知道它是 22 个字符,那么您必须少做 1/128 的工作,因此不必先尝试所有 1-21 个字符的密码——工作量减少不到 1%,而且意义不大。

请参阅ophcrack 彩虹表这将使您很好地了解如何保存特定长度的密码以及使用的字符集如何使其更安全。

你可以想:破解密码的彩虹表越大,密码越安全。

请注意,即使将密码延长一个字符也会使其破解时间更长,因此检查仅检查n-long 密码与检查1-long、2-long、... n-1-long、n-long 并没有太大区别。

请参阅Password_strength文章。

所以,总而言之——不,知道密码长度并不能真正帮助你破解密码。

唯一可能相关的是破解非常安全的密码。Mike Scott 的数学是准确的,所以假设 22 个字符的密码需要 100 年才能破解。如果我们不知道它的长度,那么我们将浪费 9 个月的时间来尝试太短的密码。然后在剩下的 92 年中的一个随机时间点,密码将被破解。

在那段时间里我们很早就尝试了正确的密码的可能性很小,所以如果我们知道长度,我们就有可能在第一年或第一周猜到正确的密码,等等。

知道密码的长度对平均破解密码的时间影响不大,但对破解时间的影响很小。这应该与一些用户不会费心尝试破解它的知识相权衡,如果他们知道它太难破解。