hexdigest在Python中做什么?

2024-04-26 20:54:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我们需要这样的哈希代码:

from hashlib import sha256
Hash = sha256(b"hello").hexdigest()
#Hash = '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'

hexdigest似乎在做主要的事情,因为没有它,我们将得到以下结果:

Hash = sha256(b"hello")
#Hash = <sha256 HASH object @ 0x000001E92939B950>

hexdigest的使用是强制性的,因为如果不使用它,将获得另一个输出,但是它做什么呢


Tags: 代码fromimporthelloobjecthash事情hashlib
1条回答
网友
1楼 · 发布于 2024-04-26 20:54:16

实际的摘要是一个非常大的数字。它通常表示为一个十六进制数字序列,因为我们人类不太擅长处理超过少数数字的数字(hex的优点是它能很好地显示某些类型的二进制模式;例如,你很难对4262789120这样的数字进行推理,而它的hex表示FE150000很容易显示低16位都是零)但是对象不仅仅是一个数字;它是一个类实例,其方法允许您(例如)在块中添加更多数据,以便您可以连续计算大文件或数据流的摘要,而无需将其全部保存在内存中n重复多次,并使用十六进制摘要方法作为在输入流的当前点查询其状态的方法

您可能会争辩说接口可能不同——例如,str(obj)可能会产生十六进制表示;但这只会将问题推到一个不同的、可以说更模糊的角落

相关问题 更多 >