如何解释openssl速度输出?
我在我的Ubuntu电脑上运行了如何解释openssl速度输出?,openssl,Openssl,我在我的Ubuntu电脑上运行了openssl speed。一些结果: Doing md4 for 3s on 16 size blocks: 9063888 md4's in 3.00s Doing md4 for 3s on 64 size blocks: 7105157 md4's in 3.00s Doing md4 for 3s on 256 size blocks: 4507884 md4's in 3.00s Doing md4 for 3s on 1024 size blocks
openssl speed
。一些结果:
Doing md4 for 3s on 16 size blocks: 9063888 md4's in 3.00s
Doing md4 for 3s on 64 size blocks: 7105157 md4's in 3.00s
Doing md4 for 3s on 256 size blocks: 4507884 md4's in 3.00s
Doing md4 for 3s on 1024 size blocks: 1809773 md4's in 2.99s
Doing md4 for 3s on 8192 size blocks: 275679 md4's in 3.00s
这些数字到底意味着什么
上面是openssl speed md4输出的最后几行-它们到底是什么意思?虽然它的措辞可能更好,但它的意思几乎是它所说的-在循环中使用16字节的输入运行
md4
哈希例程3秒钟。3秒钟后,观察到我们只运行了900多万次迭代。大约处理了1.44亿字节,即每秒4800万字节(其中“million”表示10^6)。谢谢!您能不能也给我解释一下openssl
output(命令输出的最后几行:openssl speed md4
?以下是最后几行:处理的“数字”以每秒1000字节为单位。键入16字节64字节256字节1024字节8192字节md4 47363.12k 151534.29k 382055.94k 615801.51k 747692.03k
我还会添加它们对于我的主要问题;)对于大多数散列和密码算法,吞吐量(每秒可以散列/加密多少字节)取决于您用作输入的块大小——换句话说,一次散列8KB的数据(在您的示例中为747MB/s)比一次散列16个字节(仅47MB/s)要快。这就是openssl speed所做的,用不同的块大小运行每个算法一段时间,以显示如果您以某种方式使用它,您可以期望的吞吐量…@twalberg:所以如果我有一个长度为1024的输入缓冲区(char buf[1024];
)并从openssl运行MD5
它与openssl速度中的块大小相同?如果您在一次调用中处理整个缓冲区,则是。strlen(buf)
将只计算缓冲区中的第一个空字节(假设有一个空字节,如果没有空字节,则可能会读取越界),但如果您打算散列一个以NULL结尾的字符串,则将在一次传递中处理整个字符串。。。
The 'numbers' are in 1000s of bytes per second processed.
type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes
md4 47363.12k 151534.29k 382055.94k 615801.51k 747692.03k