Python hashlib.pbkdf2_hmac用法及代码示例

原文:Python hashlib.pbkdf2_hmac用法及代码示例 - 纯净天空

用法:

hashlib.pbkdf2_hmac(hash_name, password, salt, iterations, dklen=None)

该函数提供PKCS#5基于密码的 key 推导函数2。它使用HMAC作为伪随机函数。

字符串 hash_name 是 HMAC 哈希摘要算法的所需名称,例如‘sha1’ 或 ‘sha256’。 password 和 salt 被解释为字节缓冲区。应用程序和库应将 password 限制为合理的长度(例如 1024)。 salt 应该是来自适当来源的大约 16 个或更多字节,例如os.urandom() 。

iterations的数量应根据哈希算法和计算能力来选择。截至 2022 年,建议使用数十万次 SHA-256 迭代。有关为什么以及如何选择最适合您的应用程序的理由,请阅读 Appendix A.2.2 of NIST-SP-800-132 。 stackexchange pbkdf2 iterations question上的答案详细解释。

dklen 是派生 key 的长度。如果dklen 是None,则使用散列算法hash_name 的摘要大小,例如SHA-512 为 64。

>>> from hashlib import pbkdf2_hmac
>>> our_app_iters = 500_000  # Application specific, read above.
>>> dk = pbkdf2_hmac('sha256', b'password', b'bad salt'*2, our_app_iters)
>>> dk.hex()
'15530bba69924174860db778f2c6f8104d3aaf9d26241840c8c4a641c8d000a9'

3.4 版中的新函数。

注意

OpenSSL 提供了pbkdf2_hmac 的快速实现。 Python 实现使用 hmac 的内联版本。它慢了大约三倍,并且不释放 GIL。

自 3.10 版起已弃用:缓慢的Python实现pbkdf2_hmac已弃用。将来,该函数将仅在使用 OpenSSL 编译 Python 时可用。

相关用法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值