我生成 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) -> x
ANDmd5(value2) -> x
。这使得无法从哈希中确定原始值是什么。
为您提供更多阅读
散列的全部目的是永远不允许您取回原始字符串。
你可以做的是尝试将 md5 应用于很多字符串,看看这些字符串中的一个是否偶然与最终哈希具有相同的哈希,然后你可以得出结论,这个字符串可能是生成第一个 md5 哈希的字符串。(因为由于信息在散列时丢失,您可能会遇到 2 个不同的字符串给出相同的哈希(