2024-04-28 04:54:35 发布
网友
a = hashlib.sha512("data").hexdigest()[:32]
在这里使用hexdigest有什么意义
散列减半(SHA256-half,SHA512-half…)是生成一个散列,并将其截断为其大小的一半,因此SHA512-half相当于SHA256。虽然较大的散列函数接受较大的输入,但一旦被截断,它与上述大小的非截断散列具有相同的冲突率,并且如果我们讨论的散列是可靠的且经过检查的(如SHA256和SHA512),将较大的散列减半以适应较小散列的大小只能增加感知安全性,但从技术上讲,这与生成较小的散列没有什么不同
无论如何,如果您真的不想只生成SHA256,可以将SHA512哈希减半,如下所示:
halved_sha512 = hashlib.sha512(b"input").digest()[:32]
对于bytes,或:
bytes
halved_sha512 = hashlib.sha512(b"input").hexdigest()[:64]
对于十六进制字符串
散列减半(SHA256-half,SHA512-half…)是生成一个散列,并将其截断为其大小的一半,因此SHA512-half相当于SHA256。虽然较大的散列函数接受较大的输入,但一旦被截断,它与上述大小的非截断散列具有相同的冲突率,并且如果我们讨论的散列是可靠的且经过检查的(如SHA256和SHA512),将较大的散列减半以适应较小散列的大小只能增加感知安全性,但从技术上讲,这与生成较小的散列没有什么不同
无论如何,如果您真的不想只生成SHA256,可以将SHA512哈希减半,如下所示:
对于
bytes
,或:对于十六进制字符串
相关问题 更多 >
编程相关推荐