暴力迫使UTF8

时间:2013-09-06 12:01:58

标签: security hash md5 brute-force

我用MD5哈希我的密码。我并不真的担心使用最好的算法对它们进行散列,因为我认为添加最随机的盐一个简单的MD5哈希不能被所谓的" MD5解码器&#34识别;。唯一让我烦恼的是粗暴的强迫。我想知道如果我在密码的盐中加入来自不同字母(阿拉伯语,中文,日语,西里尔语)的字符会有什么不同。问题是,如果这会使暴力强制复杂化?

2 个答案:

答案 0 :(得分:3)

如果哈希列表被泄露,那么腌制密码哈希的优点是降低使用查找列表(等等)的风险

出于说明的目的,考虑;
爱丽丝有密码,“福特”,其值为x值 鲍勃也有密码,“福特”,它仍然是值x x

现在,如果用户/哈希列表遭到入侵,则强行强制使用Alice的密码,那么攻击者也可能会损害bob的帐户。

拥有修复盐无关紧要,因为虽然两个用户之间的密码可能相同,但哈希的结果将与以前不同,但对于两个用户。为Alice找到密码也适用于Bob。

使用每个用户的确定性字符串来密码密码(它必须是确定性的,因为每次必须对用户使用相同的东西)现在意味着即使Alice和Bob具有相同的密码,它们的哈希值也可能不同(也许如果盐是他们的用户名)。任何试图破坏帐户的人现在都必须强迫每个用户破坏列表。

所以,有了为什么哈希有用的知识,你就到了下一点;人物重要吗?如果你考虑一个16字节的散列(比如MD5,它真的不应该用于加密目的,但你已经知道了),那么它会给你128位的熵。如果您的密码策略具有相当的最小密码长度,并且可能需要良好的字符组合(甚至€足够好,可以成为UTF-8中的多字节字符,这将给出所有8位字符的熵在汉字的方式中的字符,然后任何(每个用户)盐将同样有效。

答案 1 :(得分:0)

当然,这使得暴力攻击变得更加困难。在做蛮力时,你只需从有限的字符池中尝试所有组合。哪个很可能不包含阿拉伯语,中文,日语,西里尔字母。想要攻击密码的人不太可能选择具有这些字符的池,因为随着池大小的增加,获取密码的时间呈指数级增长。

你可以像这样计算组合的数量 -

Charpool = 52(小写+大写字母)

组合= 52 ^长度

对于5个字母的密码,将在380204032组合中解析。

但要回答你的问题 - 是的,这将使暴力迫使更加复杂。不仅因为增加的游泳池,而且更多的是因为攻击者必须在攻击中包含这些异国情调的角色。