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

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

Python中的hashlib.shake_256()

hashlib模块是Python中用于生成安全哈希算法的模块,提供多种哈希算法,如MD5、SHA1、SHA256等。而shake_256()是其中一种算法。

算法概述

shake_256()是一种可扩展输出函数(SHA-3)的一种变种,它使用了SHA-3竞赛中的换蛋算法(Ketje)。该算法最初被设计为SHA-3的备选方案,其设计是为高性能哈希和加密而优化的。它输出长度可变,但默认为256位。

语法

hashlib.shake_256(data= None):返回一个新的shake_256 Hash对象。如果提供了data参数,则使用该参数为Hash对象加入初始文本。

代码示例
import hashlib

# 生成 Hash 对象
hash_obj = hashlib.shake_256()

# 将数据添加到 Hash 对象
hash_obj.update(b'Hello, world!')

# 获取 Hash 值
hash_res = hash_obj.hexdigest(16)

print(hash_res)  # 8c0f28d924b97e59c5ae0bc8bfa329866fd622172cf79550

以上示例中,我们先生成了一个shake_256的Hash对象,并将字符串'Hello, world!'添加到Hash对象中。最后,我们可以通过.hexdigest()方法获取结果哈希值。

值得一提的是,由于shake_256算法的输出长度是可变的,我们可以通过指定参数的方式调整输出长度。例如代码片段中的hexdigest(16)参数指定以16字节为输出长度。