Heim >Backend-Entwicklung >PHP-Tutorial >PHP中对各种加密算法、Hash算法的速度测试对比代码,hash速度测试_PHP教程
PHP 的Hash算法是比较常用的,现在的MD5有时候不太安全,就得用到Hash_algos()中的其它算法,下面进行了一个性能的比较。
php代码:
define('testtime', 50000); $algos = hash_algos(); foreach($algos as $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 )
1、加密算法是MCRYPT_RIJNDAEL_128,至于是不是你说的AES,就不好说了。我个人认为应该不是。毕竟两者长得不太像。
2、代码没有硬伤,但是所有加密都有可能被破的,穷举法耗时问题而已。
3、IV用于初始化算法用的。一样需要保密。
百度找找
有RSA算法,MD5算法,维尼格算法
这些算法都很好找啊,我空间里面就有一篇RSA的
百度搜索
这些代码本来就难懂,涉及到数学的东西也很多
据说IBM公司DES加密的源代码公布了十几年后才有人弄懂