如何解释openssl速度输出?

如何解释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

我在我的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: 1809773 md4's in 2.99s
Doing md4 for 3s on 8192 size blocks: 275679 md4's in 3.00s
这些数字到底意味着什么

  • “为3s做md4”是什么意思? 这是否意味着整个测试持续3次/秒
  • “1809773 md4在2.99秒内”是什么意思
  • “8192尺寸块”是什么意思

  • 上面是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