有一种方法可以将md5生成的十六进制值反向转换为python中的原始文本[duplicate]

问题描述 投票:0回答:2

此问题已经在这里有了答案:

我生成md5哈希并转换为十六进制值。有没有一种方法可以将十六进制值反向转换为python中的原始文本

import base64
import hashlib

def md5_hash(plain_text):
    return hashlib.md5(plain_text.encode()).hexdigest()

md5_hash('123456')

md5生成的文本的十六进制值'e10adc3949ba59abbe56e057f20f883e'

python hash cryptography md5 hashlib
2个回答
1
投票

您不能反向散列。它们不是加密。哈希(md5,sha256等)是单向的。它们只能从x -> y开始,无法向后退y -> x。可以有多个值简化为相同的哈希(称为冲突),其中md5(value1) -> xmd5(value2) -> x。这使得无法确定哈希值的原始值。

More reading for you


0
投票

整个散列的目的是永远不允许您取回原始字符串。

您可以做的是尝试将md5应用于许多字符串,然后偶然发现这些字符串之一与您的最终哈希值具有相同的哈希值,然后可以得出结论,该字符串可能是生成的字符串您的第一个md5哈希值。 (由于散列时信息丢失,因此您可能会遇到2个提供相同散列的不同字符串)

© www.soinside.com 2019 - 2024. All rights reserved.