假设给出了两个哈希码,您已经将字符1的值赋予字符9.剩下的字符是未知的。消息长度也是未知的。
发生这两个哈希码由2个不同的明文生成,但只有第一个字符不同,其余字符完全相同。
First hash code = *********************
Second hash code = *********************
plaintext1 = 1************************
plaintext2 = 2************************
能够蛮力恢复明文?
答案 0 :(得分:1)
强制执行总是可行的,这取决于您的意图,是否适用。
如果您只需要查找冲突(导致相同哈希值的值),则可以使用强制执行。现成的GPU能够每秒计算3 Giga个SHA1哈希值。这就是为什么像SHA1这样的快速哈希函数对于哈希密码来说是一个糟糕的选择,而应该使用像BCrypt或PBKDF2这样的密钥派生函数。
发现碰撞会比较快,找到原始密码(不只是碰撞)可以使用更多时间,这取决于密码的强度,你需要多长时间。
使用良好的加密哈希函数,有关相同字符的知识应该没有任何优势。
如果你想改变明文,以便它产生相同的哈希值,那么你可能会花费你的生命,寻找这样的文本。这要困难得多,因为新文本最终应该有意义。
答案 1 :(得分:0)
加密哈希算法旨在在整个计算哈希中传播明文中的小变化。你所询问的那种攻击是不可行的。