|
hash
Generate a hash value (message digest)
(PHP 5 >= 5.1.2, PECL hash:1.1-1.5)
Parameters
Return ValuesReturns a string containing the calculated message digest as lowercase hexits unless raw_output is set to true in which case the raw binary representation of the message digest is returned. ExamplesExample 872. A hash() example<?php The above example will output: ec457d0a974c48d5685a7efa03d137dc8bbde7e3
See Also
Related Examples ( Source code ) » hash Examples ( Source code ) » Use md5 function to encrypt text Code Examples / Notes » hashjust me
The speed difference (as noted in a below posting) between md5() and hash() goes down to zero with strings longer than just a few bytes. With a string length of 1kB the difference is 10% advantage for hash() and shrinks further down to 3% with 10kB strings.
peter kelly
If the hash functions are not available to you at the moment, and you want to future proof your code, then the code below will emulate two of the important hashing functions, they will also be automatically replaced with the faster versions if available. if(!function_exists('hash_algos')) { function hash_algos() { $algo[0] = "md5"; $algo[1] = "sha1"; $algo[2] = "crc32"; return($algo); } } if(!function_exists('hash')) { function hash($algo, $data, $raw_output = 0) { if($algo == 'md5') return(md5($data)); if($algo == 'sha1') return(sha1($data)); if($algo == 'crc32') return(crc32($data)); } } dani88elx
Comparison between hash algorithms. <? $algos = hash_algos(); $word="hola"; foreach($algos as $algo) { echo $algo.": "; $time=microtime(1); echo hash($algo, $word); echo " ".(microtime(1)-$time)." <hr>"; } ?> mysteryboy
but hash a big file , example:23KB: hash 1.2369749546051: md4 1.5122809410095: md5 7.1646420955658: adler32 3.1666488647461: crc32 0.018635988235474: crc32b 2.4434490203857: sha1 =========>> 1.5402789115906: md5 2.4519650936127: sha1 mikael
<?php $time=microtime(1); for ($i=0;$i<100000;$i++) hash('md5', 'string'); echo microtime(1)-$time,': hash/md5 '; $time=microtime(1); for ($i=0;$i<100000;$i++) md5('string'); echo microtime(1)-$time,': md5 '; $time=microtime(1); for ($i=0;$i<100000;$i++) hash('sha1', 'string'); echo microtime(1)-$time,': hash/sha1 '; $time=microtime(1); for ($i=0;$i<100000;$i++) sha1('string'); echo microtime(1)-$time,': sha1 '; ?>------------------------ <?php $time=microtime(1); for ($i=0;$i<100000;$i++) hash('md5', $i); echo microtime(1)-$time,': hash/md5 '; $time=microtime(1); for ($i=0;$i<100000;$i++) md5($i); echo microtime(1)-$time,': md5 '; $time=microtime(1); for ($i=0;$i<100000;$i++) hash('sha1', $i); echo microtime(1)-$time,': hash/sha1 '; $time=microtime(1); for ($i=0;$i<100000;$i++) sha1($i); echo microtime(1)-$time,': sha1 '; ?> Gives: 0.33311605453491: hash/md5 1.0671429634094: md5 0.383131980896: hash/sha1 1.3252220153809: sha1 ------------------------ 0.37684988975525: hash/md5 1.1258299350739: md5 0.43960785865784: hash/sha1 1.3876020908356: sha1 |