我写了一个基本函数来测试Node.js内置加密函数的AES-256-CBC模式的速度。这些函数使用OpenSSL,因此它们应该支持AES-NI,但是当我正确启用AES-NI并对OpenSSL进行命令行测试时,OpenSSL上的加密速度约为350MB / s,而Node.js上的加密速度仅为~100MB / s加密。
我使用this answer在命令行中启用OpenSSL AES-NI并按如下方式运行:
openssl speed -evp aes-256-cbc
我的问题是,如何使AES的Node.js加密函数的速度与命令行中运行的OpenSSL的速度相匹配?我怀疑原因是没有使用AES-NI
答案 0 :(得分:3)
在最新版本v0.12(刚刚公开发布)之前,似乎没有正确启用。
这里有一些注释 http://strongloop.com/strongblog/performance-node-js-v-0-12-whats-new/
答案 1 :(得分:2)
不,你做得对。 OpenSSL在Node中的性能有点令人失望。大多数生产Node.js部署终止除Node.js之外的SSL连接,然后将未加密的连接转发到Node.js。