📜  Python中的 hashlib.shake_128()(1)

📅  最后修改于: 2023-12-03 15:34:22.167000             🧑  作者: Mango

Python中的 hashlib.shake_128()

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
注意事项
  • 比特长度必须是8的倍数,且不超过2^256-1(在上例中为256)。
  • 每次获得哈希值后,哈希对象的状态都会被重置,需要重新添加数据。