我进行测试以检查不同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
当然,当我们谈论安全性时,处理时间并不是最重要的。我只是想分享我的结果。
你使用的是什么样的算法和模式,为什么? 我知道这取决于情况,安全级别等,但请举一些例子。
答案 0 :(得分:3)
以下是PHP(对称密码)中 MCrypt与OpenSSL 的速度比较的完整测试基准:
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更可靠(如安全)。
另外,请记住当你处理散列和/或加密速度不是你的朋友时(原因很简单:如果它很快,它会更快到裂强>)。