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