我如何猜测已知字符串哈希中的某些缺失字符?

How can i guess some missing character in known strings hash?

我不擅长编程。实际上,我已经了解该算法,但在将其实现为编码时不起作用。所以我在这里解释一下。

我有一个词=“lionfire” 和 md5 哈希 = "55dbbb5fa990642a061cdfcf73b5027b"

如果我只知道 md5 散列和“li?nf?re”这个词,我怎么能猜出真正的词呢? 这是我最后一次尝试 python

import hashlib
import sys
import string

characters = string.printable

for x, y  in characters:
    content= 'li'+ x + 'nf' + y + 're'
    if hashlib.md5(content).hexdigest() == "55dbbb5fa990642a061cdfcf73b5027b":
        print content
        sys.exit(0)

搜索模式必须允许 2 个可能的字母 'o' 和 'i'...因此您需要考虑一对字母(python 称这些元组)。

使用的模式 2 字母模式:'li%snf%sre'。 %s 替换第一个 (f) 和第二个 (s) 的情况。

import hashlib
import sys
import string


def findWord(md5Key, pattern):
    charList = [(f,s) for f in string.printable for s in string.printable]

    for f,s  in charList:
        content= pattern % (f,s)
        if hashlib.md5(content.encode()).hexdigest() == md5Key:
            print('found',content)
            return content
    return None

findWord("55dbbb5fa990642a061cdfcf73b5027b", 'li%snf%sre')