Test and compare the speed of various encryption algorithms and Hash algorithms in PHP, and test the hash speed.
The Hash algorithm of PHP is quite common. The current MD5 algorithm is sometimes not safe, so we need to use other algorithms in Hash_algos (). The following is a performance comparison.
Php code:
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)
Questions about the php Encryption Algorithm
1. the encryption algorithm is MCRYPT_RIJNDAEL_128. It is hard to say if it is AES. I personally think it should not. After all, the two are not very similar.
2. The code is not broken, but all encryption may be broken, which is time-consuming.
3. IV is used for algorithm initialization. The same must be kept confidential.
Which of the following ideas can be provided by using the C language to implement symmetric encryption algorithms, asymmetric encryption algorithms, and HASH algorithms?
Baidu search
Including RSA algorithm, MD5 algorithm, and vinig Algorithm
These algorithms are easy to find. I have an article on RSA in my space.
Baidu search
These codes are hard to understand and involve a lot of mathematics.
It is said that some people have understood the source code of DES encryption of IBM after more than a decade.