我生成了用于上传验证的 md5 内容哈希,但最近我注意到这对于在启用 FIPS 的机器上运行的任何用户都会失败。 FIPS 禁用 openssl md5,当我尝试初始化 hashlib 时会导致 ValueError
。通常我会改用 SHA,但我依赖于需要 content-md5 header 的外部服务。
我的问题是:有没有办法强制 Python 使用非 openssl 散列函数?有一些关于添加 usedforsecurity
标志的 here 讨论,但它似乎没有去任何地方。
最佳答案
“我如何从 FIPS 模式机器发送 content-md5 header ”的答案是 您在启用 FIPS 模式时不要使用非 FIPS 验证的算法 因为您可能会违反联邦法规或组织政策因此,由于 FIPS 启用机器的唯一重要原因是是否有监管(或可能是预防政策)要求这样做。
this github issues list 中也有一些讨论,建议 content-md5 必须是可选的。
根据监管要求,您不能使用 MD5,因为它不是 FIPS 兼容算法,因此不能有 FIPS 验证(!)实现。
您需要执行以下操作之一:
如果您的管理层需要引用,请直接从 nist.gov 查看 Annex A Approved Security Functions for FIPS PUB 140-2 。
关于python - 有没有办法在python中为hashlib使用非openssl md5?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35586302/