有没有一种方法可以将md5生成的十六进制值反转回python中的原始文本
我生成md5散列并转换为十六进制值。 有没有一种方法可以在python中从十六进制值反转回原始文本有没有一种方法可以将md5生成的十六进制值反转回python中的原始文本,python,hash,cryptography,md5,hashlib,Python,Hash,Cryptography,Md5,Hashlib,我生成md5散列并转换为十六进制值。 有没有一种方法可以在python中从十六进制值反转回原始文本 import base64 import hashlib def md5_hash(plain_text): return hashlib.md5(plain_text.encode()).hexdigest() md5_hash('123456') md5生成文本的十六进制值 'e10adc3949ba59abbe56e057f20f883e'您不能反转哈希值。它们不是加密。散列(
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
和md5(value2)->x
。这使得无法从散列中确定原始值
散列的全部目的是永远不允许您找回原始字符串
你能做的是尝试将md5应用于许多字符串,看看这些字符串中是否有一个与最终哈希相同的哈希,然后你可以得出结论,这个字符串可能是生成第一个md5哈希的字符串。(因为散列时信息丢失,您可能会遇到两个不同的字符串提供相同的散列)我可以散列(SHA 512)文本的ASCII字符,然后尝试将其检索回来吗。您无法从散列中检索任何内容,否。可能会有多个ASCII字符产生相同的散列,因此,无法确定是哪些字符导致了上述散列。