当我在我的 Macbook 上运行以下命令时,出现错误:
>>> import hashlib
>>> hashlib.md5(usedforsecurity=False)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: openssl_md5() takes no keyword arguments
但是当我在我的 Linux 机器上运行它时,它就可以工作了!
>>> import hashlib
>>> hashlib.md5(usedforsecurity=False)
<md5 HASH object @ 0x7f763c1375d0>
我的问题是,我需要在启用 FIPS 的系统上运行一些安全的、与安全无关的代码(例如管理用户请求的缓存,将用户查询哈希为 MD5 字符串)。使用该usedforsecurity
标志可防止 FIP 异常。
这很好用,除非我想在我的 Macbook 上测试我的代码。我的 Macbook 的“libcrypto”库显然不支持这个usedforsecurity
标志。有没有一种好方法来检测背后的底层 C 绑定是否hashlib.md5
支持这个标志?