有没有办法在 python 中将 md5 生成的十六进制值反转为原始文本



我生成 md5 哈希并转换为十六进制值。 有没有办法在python中从十六进制值反转回原始文本

import base64
import hashlib
def md5_hash(plain_text):
return hashlib.md5(plain_text.encode()).hexdigest()
md5_hash('123456')

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

不能反转哈希。它们不是加密。哈希(md5、sha256 等(是单向的。他们只能从x -> y走,没有办法倒退y -> x。可以有多个值简化为相同的哈希(称为冲突(,其中md5(value1) -> xANDmd5(value2) -> x。这使得无法从哈希中确定原始值是什么。

为您提供更多阅读

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

你可以做的是尝试将 md5 应用于很多字符串,看看这些字符串中的一个是否偶然与最终哈希具有相同的哈希,然后你可以得出结论,这个字符串可能是生成第一个 md5 哈希的字符串。(因为由于信息在散列时丢失,您可能会遇到 2 个不同的字符串给出相同的哈希(

最新更新