首页 > 解决方案 > 是否可以使用 mmh3 在 Python 中反转 MurmurHash?

问题描述

这是一个 murmer 哈希的示例:

>>> import mmh3
>>> seq = "AGTCGCTGA"
>>> seq_hash = mmh3.hash64(seq, seed=0, signed=False)
>>> seq_hash
(12042475613054376161, 7271345330980536087)

我的主要问题是是否可以反转 mmh3 哈希以获得原始序列?

我的第二个问题是输出的两个值有什么区别?

AGTCGCTGA有可能从那里回来12042475613054376161吗?

标签: pythonhashhashtablehashcodeseq

解决方案


是否可以从 12042475613054376161 取回 AGTCGCTGA?

这会在不到一秒的时间内完成:

from itertools import count, product
import mmh3

for length in count():
    for seq in map(''.join, product('ACGT', repeat=length)):
        seq_hash = mmh3.hash64(seq, seed=0, signed=False)
        if seq_hash[0] == 12042475613054376161:
            print(seq)

推荐阅读