ili*_*deh 11 python hash sha256 hashlib
我们需要这样的代码来进行哈希处理:
from hashlib import sha256
Hash = sha256(b"hello").hexdigest()
#Hash = '2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824'
Run Code Online (Sandbox Code Playgroud)
hexdigest 似乎正在做主要的事情,因为没有它我们将得到以下结果:
Hash = sha256(b"hello")
#Hash = <sha256 HASH object @ 0x000001E92939B950>
Run Code Online (Sandbox Code Playgroud)
hexdigest 的使用是强制性的,因为如果不使用它,将获得另一个输出,但它有什么作用呢?
tri*_*eee 13
实际的摘要是一个非常大的数字。它通常表示为十六进制数字序列,因为我们人类不太擅长处理多于几个数字的数字(十六进制的优点是它可以很好地揭示某些类型的二进制模式;例如,你很难推理像 4,262,789,120 这样的数字,而它的十六进制表示形式 FE150000 很容易表明低 16 位全为零),但该对象不仅仅是一个数字;它是一个对象。它是一个类实例,其方法允许您以块的形式添加更多数据,以便您可以连续计算大文件或数据流的摘要,而无需将所有数据保留在内存中。您可以将摘要对象视为允许多次重复此操作的状态集合,并将十六进制摘要方法视为查询输入流中当前点的状态的方法。
您可能会认为接口可能不同 - 例如,str(Hash)可以生成十六进制表示;但这只会将问题推向一个不同的、可以说更加晦涩难懂的角落。
为了完整性,hexdigestPython 中通常没有明确定义。它是标准库中模块内的一组方法的名称hashlib,本说明讨论了该特定用例。其他库可能有一个名称相同但语义完全不同的方法;或者他们可以有一个具有相同目的但名称完全不同的方法。
| 归档时间: |
|
| 查看次数: |
33099 次 |
| 最近记录: |