hmac —消息身份验证的键哈希

源代码: Lib/hmac.py


此模块实现 RFC 2104所描述的 HMAC 算法。

在版本 3.4 中更改:参数* key 可以是字节或字节数组对象。参数 msg 可以是hashlib支持的任何类型。参数 digestmod *可以是哈希算法的名称。

从 3.4 版开始不推荐使用,在 3.8 版中删除:不推荐使用 MD5 作为* digestmod *的隐式默认摘要。现在需要 digestmod 参数。当您没有初始 msg 时,将其作为关键字参数传递以避免尴尬。

CPython 实现细节,仅当* digest *是摘要算法的字符串和名称(由 OpenSSL 支持)时,才使用优化的 C 实现。

3.7 版中的新Function。

HMAC 对象具有以下方法:

在版本 3.4 中更改:参数* msg *可以是hashlib支持的任何类型。

Warning

在验证例程期间将digest()的输出与外部提供的摘要进行比较时,建议使用compare_digest()函数而不是==运算符来减少定时攻击的脆弱性。

Warning

在验证例程期间将hexdigest()的输出与外部提供的摘要进行比较时,建议使用compare_digest()函数而不是==运算符来减少定时攻击的脆弱性。

哈希对象具有以下属性:

3.4 版的新Function。

3.4 版的新Function。

此模块还提供以下帮助器Function:

Note

如果* a b 的长度不同,或者发生错误,则定时攻击理论上可以揭示有关 a b *的类型和长度的信息,但不能显示其值。

版本 3.3 中的新Function。

See also

  • Module hashlib

  • 提供安全哈希函数的 Python 模块。

首页