首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法将md5生成的十六进制值还原为python中的原始文本

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

Stack Overflow用户
提问于 2019-10-15 00:48:44
回答 2查看 1.4K关注 0票数 1

我生成md5散列并将其转换为十六进制值。有没有一种方法可以在python中将十六进制值转换回原始文本?

代码语言:javascript
复制
import base64
import hashlib

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

md5_hash('123456')

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

EN

回答 2

Stack Overflow用户

发布于 2019-10-15 00:52:11

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

More reading for you

票数 1
EN

Stack Overflow用户

发布于 2019-10-15 00:54:10

散列的整个目的是永远不允许你找回原来的字符串。

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58380987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档