我们使用hashlib.sha512()
创建sha512哈希但是sha512哈希怎么样?
这是正确的方法:
a= hashlib.sha512("data").hexdigest()[:32]
答案 0 :(得分:1)
哈希减半(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]
对于十六进制字符串。