在 Linux 下,可以用 OpenSSL 自带的 openssl speed 命令来测试加密/解密、签名/验证等算法的性能。下面按常见用法 → 进阶用法 → 实战示例给你说明。
openssl speed
这会测试 一大堆算法(AES、RSA、SHA、ECC 等)的吞吐量,输出类似:
type 16 bytes 64 bytes 256 bytes
aes-128-cbc 123456.45k 456789.12k 789123.45k
单位一般是 KB/s(k = 1024 bytes)
openssl speed aes-128-cbc
openssl speed aes-256-gcm
openssl speed sha256
openssl speed sha1
openssl speed rsa2048
openssl speed ecdsap256
⚠️ 非对称算法很慢,通常只测签名/验证次数
默认是 单线程,现代 CPU 要用多核才有意义:
openssl speed -multi 8 aes-256-cbc
-multi N = 使用 N 个 CPU 核心
查看 CPU 核心数:
nproc
openss speed rsa2048 -multi $(nproc)
关注:
sign = 服务端verify = 客户端openssl speed ecdsap256 -multi $(nproc)
openssl s_server -cert server.pem -key server.key -www
openssl s_time -connect localhost:4433 -www / -time 10
输出:
openssl speed -evp aes-256-gcm
-evp 使用 EVP 接口(更接近真实应用)
openssl speed -multi $(nproc) \
aes-128-gcm aes-256-gcm \
sha256 sha512 \
rsa2048 ecdsap256
✅ 使用 硬件加速(AES-NI)
grep aes /proc/cpuinfo
✅ OpenSSL 版本影响巨大
openssl version
✅ 虚拟机 / 容器有性能损失
✅ 温度变化会影响结果
快速测性能:
openssl speed -multi $(nproc) aes-256-gcm sha256 rsa2048
如果你愿意,可以告诉我:
我可以给你更精确的命令。