CPython hashlib 的 SHA256 是否采用 Intel SHA 扩展 ?如果是,从哪个版本开始?
由于 CPython 使用 OpenSSL 作为其加密原语,它还应该使用其硬件加速功能(AESNI-SHA256 已于 2015 年 1 月 22 日在 1.0.1l 和 1.0.2 之间添加到 OpenSSL 中),但我不知道是否和从使用 SHA256 硬件加速开始。我试图理解 sha256module.c 源代码,但迷失在抽象中:(
额外问题:据我所知,Windows 版本的 CPython 静态链接 OpenSSL。它什么时候升级到理论上可以使用 SHA-NI 的 OpenSSL 版本,以及:它使用它们吗? (抱歉,我什至无法通过 Googlethat)
OpenSSL 在 1.0.2 中添加了硬件加速 SHA256 [2015 年 1 月 22 日]。从变更日志:
* Support for new and upcoming Intel processors, including AVX2,
BMI and SHA ISA extensions. This includes additional "stitched"
implementations, AESNI-SHA256 and GCM, and multi-buffer support
for TLS encrypt.
This work was sponsored by Intel Corp.
这意味着自 3.5 起,CPython 至少在某些平台上支持硬件辅助 SHA256 哈希。在 Python 3.12 中,CPython 改用 HACL(请参阅
提交,以及基准测试结果),这显着提高了哈希性能。