我对目前的任务感到有点困惑,那就是暴力破解md5哈希。出于学习目的,我还允许将哈希值降低到24位,并且我在C中使用OpenSSL来生成md5哈希。我的问题是我不明白强制它的确切方法,我尝试的是:
检查每个ascii字符是否附加它然后散列它,然后将它与目标散列进行比较。
如果这是暴力破解哈希的正确方法,那么我该如何将其减少到24位(因为哈希会被更改)?
答案 0 :(得分:1)
“减少到24位”意味着您可以改为寻找X
的简单问题,而不是寻找md5(X)=<128 target bits (fixed)>
这样的输入X
。 } md5(X)=<124 unconstrainted bits><24 target bits>
。
换句话说,判断您是否达到目标的测试更为宽松。
“暴力”意味着有条不紊地尝试所有输入,直到找到满足条件的输入。如果您正在测试按字母顺序排列的字词,那么例如意味着测试a
,b
,...,z
,aa
,ab
,{{1 },...(但没有理由将自己限制在字母词中,你可以尝试长度为1,2的所有二进制消息......)