Python 3.x Python3创建md5哈希

Python 3.x Python3创建md5哈希,python-3.x,md5,decode,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' 但是我没有得到任何结果从这里你无法到达那里。散列是对数据的一种小型重构,它几乎破坏了数据中的所有信息。它用于标识数据的修订,并可在以后用于查看数据是否已更改。一个好的散列算法即使在数据中更改1个字符,也会显著改变其输出。想想古登堡的仲夏夜之梦吧。它大约有

我必须解码以下数据:

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'

但是我没有得到任何结果

从这里你无法到达那里。散列是对数据的一种小型重构,它几乎破坏了数据中的所有信息。它用于标识数据的修订,并可在以后用于查看数据是否已更改。一个好的散列算法即使在数据中更改1个字符,也会显著改变其输出。想想古登堡的仲夏夜之梦吧。它大约有100000个字符,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

我建议您阅读hashlib的官方文档

简单的例子:

import hashlib

text = 'Some text 2'

m = hashlib.md5()
m.update(b"Some text") # OR
m.update(text.encode('UTF-8'))
print(m.hexdigest())

散列是数据的单向置乱和缩短。例如,我可以将一个长文档的md5散列转换为一个短字符串,以证明该文档以后没有被更改。但它不会倒退。您无法取回原始字符串。您会注意到md5对象上没有
decode
。那么如何使用hashlib对数据进行解码呢?因为有人告诉我要使用它。请澄清一下!任务是否还有更多内容,可能是一个可能的消息列表,您必须选择哪一个?您可以反转加密消息,但不能反转哈希。要么这个人不知道他们在说什么,要么任务还有更多。例如,假设我给了你一条消息的前5个字符,并告诉你从那里解密整个消息。你应该告诉我不行!
import hashlib

text = 'Some text 2'

m = hashlib.md5()
m.update(b"Some text") # OR
m.update(text.encode('UTF-8'))
print(m.hexdigest())