明白我在做什么吗?

2024-04-28 04:54:35 发布

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

a = hashlib.sha512("data").hexdigest()[:32]

在这里使用hexdigest有什么意义


Tags: datahashlib意义hexdigestsha512
1条回答
网友
1楼 · 发布于 2024-04-28 04:54:35

散列减半(SHA256-half,SHA512-half…)是生成一个散列,并将其截断为其大小的一半,因此SHA512-half相当于SHA256。虽然较大的散列函数接受较大的输入,但一旦被截断,它与上述大小的非截断散列具有相同的冲突率,并且如果我们讨论的散列是可靠的且经过检查的(如SHA256和SHA512),将较大的散列减半以适应较小散列的大小只能增加感知安全性,但从技术上讲,这与生成较小的散列没有什么不同

无论如何,如果您真的不想只生成SHA256,可以将SHA512哈希减半,如下所示:

halved_sha512 = hashlib.sha512(b"input").digest()[:32]

对于bytes,或:

halved_sha512 = hashlib.sha512(b"input").hexdigest()[:64]

对于十六进制字符串

相关问题 更多 >