PHP中对各种加密算法、Hash算法的速度测试对比代码
PHP的Hash算法是比较常用的,现在的MD5有时候不太安全,就得用到Hash_algos()中的其它算法,下面进行了一个性能的比较。
php代码:
define('testtime',50000);
$algos=hash_algos();
foreach($algosas$algo){
$st=microtime();
for($i=0;$i<testtime;$i++){
hash($algo,microtime().$i);
}
$et=microtime();
list($ss,$si)=explode('',$st);
list($es,$ei)=explode('',$et);
$time[$algo]=$ei+$es-$si-$ss;
}
asort($time,SORT_NUMERIC);
echo"";
print_r($time);
Array
(
[crc32b]=>0.14577506593323
[crc32]=>0.14600901216125
[adler32]=>0.14769597711182
[md4]=>0.1584680151825
[md5]=>0.15956400747681
[salsa20]=>0.16176804933166
[salsa10]=>0.16325911569214
[tiger128,3]=>0.16543607070923
[sha1]=>0.16547892630005
[tiger160,3]=>0.16672711079407
[tiger192,3]=>0.16793211837769
[tiger128,4]=>0.16802901655579
[sha224]=>0.16959108877563
[tiger160,4]=>0.1713979150238
[tiger192,4]=>0.1717759589386
[sha256]=>0.17396298696899
[ripemd256]=>0.17431005943298
[ripemd128]=>0.17437094918823
[ripemd320]=>0.17870710316467
[haval160,3]=>0.18147005220032
[haval256,3]=>0.18150104528809
[haval224,3]=>0.18176211320496
[sha512]=>0.18234492471313
[haval192,3]=>0.18296506645203
[ripemd160]=>0.18318411643982
[haval128,3]=>0.18408892243958
[sha384]=>0.18502903718567
[haval128,4]=>0.18848111178589
[haval256,4]=>0.18875202952576
[haval160,4]=>0.1895639828186
[haval224,4]=>0.19041207319641
[haval192,4]=>0.19101205462646
[whirlpool]=>0.19728892146301
[haval256,5]=>0.19996902294922
[haval160,5]=>0.20026498704529
[haval192,5]=>0.20072503967285
[haval128,5]=>0.20132308227539
[haval224,5]=>0.2025869493103
[gost]=>0.24892493852234
[snefru256]=>0.28652299385071
[snefru]=>0.29043891609192
[md2]=>0.6300178873291
)