迭代每个md5哈希的可能性

时间:2014-07-31 02:51:30

标签: loops md5

我对c#(以及一般的编程)还很陌生

我一直试图用forloop攻击这个但是我没有取得太大进展,因为它不仅仅是一个数字迭代它的十六进制而不是十进制

00000000000000000000000000000000
....
098f6bcd4621d373cade4e832627b4f6
...
ffffffffffffffffffffffffffffffff

1 个答案:

答案 0 :(得分:3)

迭代每个可能的值,即16 32 次迭代,或约3x10 38

每秒10亿次迭代,这将花费你大约一万亿亿年: - )

如果你以某种方式获得永生,并且能够在50亿年的阳光下生存下来,那你就是这样做的。

1 /如果你有一个128或更好的位数据类型,只需从零开始计数并计数,每次都输出十六进制值。

val = 0
while val < 2**128: # watch out for wrapping
    printline hex(val)
    val = val + 1

2 /如果你必须从较小的数据类型(如单个字符)构建它:

# init to zero.

dim val[0..32]
foreach index 0..31:
    val[index] = 0

# keep going till done.

while val[32] != 1:
    # print current value.

    foreach index 31..0:
        print hex(val[index])
    printline

    # then increment it.

    carry = 1
    index = 0
    while carry = 1:
        val[index] = val[index] + carry
        if val[index] != 16:
            carry = 0
        index = index + 1