📅  最后修改于: 2023-12-03 15:34:22.167000             🧑  作者: Mango
Python中的hashlib.shake_128()
是一种可扩展的哈希函数,它可以产生任意长度的哈希值。它是在Python3.6中引入的,可在2.7.7及其以上的版本使用。
hashlib.shake_128(data=b'', *, digest_bits=128)
data
:要被哈希的数据,以字节表示,默认值为b''
。digest_bits
:哈希值的长度,单位是比特,默认为128
比特。该函数返回一个新的哈希对象,该对象可以使用update()
方法逐步添加要哈希的数据,并使用digest()
或hexdigest()
方法获得哈希值。
import hashlib
# 创建哈希对象
shake_hash = hashlib.shake_128()
# 添加数据并更新哈希值
shake_hash.update(b'my data')
shake_hash.update(b'my more data')
# 获取比特长度为256的哈希值
result256 = shake_hash.digest(256)
print('256位哈希值:', result256.hex())
# 获取比特长度为128的哈希值
result128 = shake_hash.digest(128)
print('128位哈希值:', result128.hex())
运行结果:
256位哈希值: 939052bfc5de35ff1cf39a2f9d28e6df17bdb9c1a7dbfc953c3ad6e8fb9db259
128位哈希值: 939052bfc5de35ff1cf39a2f9d28e6df
2^256-1
(在上例中为256)。