不同PHP mcrypt算法的速度

时间:2011-04-30 12:05:56

标签: php performance mcrypt

嗨伙计们。今天我正在测试php mcrypt算法。

我进行测试以检查不同mcrypt algos的速度。

测试算法: Cast-128,Gost,Rijndael-128,Twofish,Cast-256,Loki97,Rijndael-192,Saferplus,Blowfish-compat,Des,Rijndael-256,蛇,Xtea,Blowfish,Rc2,Tripledes

测试以ECB模式运行(您也可以使用: CBC,CFB,CTR,ECB,NCFB,NOFB,OFB )。

我加密了一个简单的字符串:“这是一个测试”。以下结果是1000次迭代(结果以秒为单位)。

  

BLOWFISH   0.5217170715332

     

BLOWFISH COMPAT   0.46304702758789

     

CAST 128   0.19502091407776

     

CAST 256   0.28649806976318

     

DES   0.45267295837402

     

GOST   0.19383502006531

     

LOKI97   0.27537798881531

     

RC2   0.44201898574829

     

RIJNDAEL 128   0.2560601234436

     

RIJNDAEL 192   0.33414602279663

     

RIJNDAEL 256   0.42553782463074

     

SAFERPLUS   0.32848501205444

     

SERPENT   0.391037940979

     

TripleDes的   0.65123796463013

     

TWOFISH   0.27349305152893

     

XTEA   0.37829685211182

当然,当我们谈论安全性时,处理时间并不是最重要的。我只是想分享我的结果。

你使用的是什么样的算法和模式,为什么? 我知道这取决于情况,安全级别等,但请举一些例子。

2 个答案:

答案 0 :(得分:3)

以下是PHP(对称密码)中 MCrypt与OpenSSL 的速度比较的完整测试基准:

mcrypt vs. openSSL benchmark

Mcrypt虽然年纪较大,但记录较好且库的速度明显较慢,但输出非常稳定。 OpenSSL更新,更快,记录更少。

如果您首先关心性能,那么请使用OpenSSL CFB / ECB 256位算法。

请注意,英特尔酷睿i3 / i5 / i7支持 AES指令集,可以极大地将每个线程的I / O吞吐量从11 MB /秒提高到700 MB /秒 - 请参阅{{3} }。

答案 1 :(得分:1)

我正在使用AES 256(MCRYPT_RIJNDAEL_256),为什么?由于算法的恶名和广泛的使用。我也在使用CBC模式进行加密,我不明白其中的原因,但从我从各种来源读到的信息,它比ECB更可靠(如安全)。

另外,请记住当你处理散列和/或加密速度不是你的朋友时(原因很简单:如果它很快,它会更快到裂)。