python-3.x - Python 3 创建 md5 哈希

标签 python-3.x md5 decode

我必须解码以下数据:

b'E\x00\x00 <\xed\x00\x00>\x01\x15\xe2\xac\x140f\xa1C\xacP\x00\x00\xf8V\x00\x07\x00\x07\x00\x01\x07\x9a'

成一个可以理解的字符串。为此,我们被告知使用 hashlib 和 md5。但我不知道如何使用它来解密这条消息。

我试过这样的事情:
message.hashlib().md5().decode()

但我没有得到任何结果

最佳答案

你不能从这里到达那里。散列是对数据的小型重构,它会破坏数据中的几乎所有信息。它用于识别数据的修订版本,以后可用于查看数据是否已更改。一个好的散列算法即使在数据中改变 1 个字符也会显着改变其输出。考虑一下gutenberg.org 上的仲夏夜之梦。它大约有 100,000 个字符,它的 md5 哈希是 16 个字节。你不会从中取回原件!

>>> import hashlib
>>> import requests
>>> night = requests.get("http://www.gutenberg.org/ebooks/1514.txt.utf-8")
>>> len(night.text)
112127

>>> print(night.text[20000:20200])
h power to say, Behold!
The jaws of darkness do devour it up:
So quick bright things come to confusion.

HERMIA
If then true lovers have ever cross'd,
It stands as an edict in destiny:
Then let
>>> print(night.text[20000:20300])
h power to say, Behold!
The jaws of darkness do devour it up:
So quick bright things come to confusion.

HERMIA
If then true lovers have ever cross'd,
It stands as an edict in destiny:
Then let us teach our trial patience,
Because it is a customary cross;
As due to love as thoughts, and dre

>>> hash = hashlib.md5(night.text.encode("utf-8")).hexdigest()
>>> print(hash)
cce0d35b8b2c4dafcbde3deb983fec0a

哈希对于查看文本是否已更改非常有用:
>>> hash2 = hashlib.md5(requests.get("http://www.gutenberg.org/ebooks/1514.txt.utf-8").text.encode("utf-8")).hexdigest()
>>> hash == hash2
True

关于python-3.x - Python 3 创建 md5 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49958006/

相关文章:

firefox - 从十六进制格式解码 Firefox 浏览器缓存条目

java - 将字节缓冲区转换为字符串在 Java 中不起作用

python - 'ascii' 编解码器无法在位置 * ord 不在范围 (128) 处对字符进行编码

python - Python中的 'Attempted relative import beyond top-level package'错误意味着什么?

C# 等效于 PHP 的原始输出 MD5?

c++ - 如何轻松应用Crypto++哈希函数?

md5 - MD5 各种语言的一行代码示例

python - 如何随机拾取二值图像中非零像素的位置?

python - 使用 Python-xmlrpc 从外部图像链接设置 WordPress 帖子缩略图

python - Tkinter - 如何限制文本使用的空间?