我生成md5散列并将其转换为十六进制值。有没有一种方法可以在python中将十六进制值转换回原始文本?
import base64
import hashlib
def md5_hash(plain_text):
return hashlib.md5(plain_text.encode()).hexdigest()
md5_hash('123456')文本'e10adc3949ba59abbe56e057f20f883e'的md5生成的十六进制值
发布于 2019-10-15 00:52:11
您不能反转哈希。它们不是加密的。哈希(md5、sha256等)都是单向的。它们只能从x -> y开始,没有办法倒退到y -> x。可以有多个值减少到相同的散列(称为冲突),其中md5(value1) -> x和md5(value2) -> x。这使得无法从散列中确定原始值是什么。
发布于 2019-10-15 00:54:10
散列的整个目的是永远不允许你找回原来的字符串。
你可以做的是尝试将md5应用于很多字符串,看看这些字符串中是否有一个与最终的散列具有相同的散列,然后你可以得出结论,这个字符串可能就是生成第一个md5散列的字符串。(因为在散列过程中信息丢失,您可能会遇到两个不同的字符串提供相同的散列)
https://stackoverflow.com/questions/58380987
复制相似问题