一 Mhash库常量
1、代码
<?php $num = mhash_count(); //函数返回最大的hash id echo "Mhash库支持的算法有:"; for($i = 0; $i <= $num; $i++){ echo $i."=>".mhash_get_hash_name($i)." "; //输出每一个hash id 的名称 } ?>
2、运行结果
Mhash库支持的算法有:0=>CRC32 1=>MD5 2=>SHA1 3=>HAVAL256 4=> 5=>RIPEMD160 6=> 7=>TIGER 8=>GOST 9=>CRC32B 10=>HAVAL224 11=>HAVAL192 12=>HAVAL160 13=>HAVAL128 14=>TIGER128 15=>TIGER160 16=>MD4 17=>SHA256 18=>ADLER32 19=>SHA224 20=>SHA512 21=>SHA384 22=>WHIRLPOOL 23=>RIPEMD128 24=>RIPEMD256 25=>RIPEMD320 26=> 27=>SNEFRU256 28=>MD2 29=>FNV132 30=>FNV1A32 31=>FNV164 32=>FNV1A64 33=>JOAAT
3、说明
如果在实际应用中使用上面的常量,需要在算法名称前加上MHASH_前缀。
二 Mhash应用
1、代码
<?php $filename = 'count.txt'; //文件路径 $str = file_get_contents($filename); //读取文件内容到变量$str中 $hash = 2; //设置hash值 $password = '111'; //设置变量$password $salt = '1234'; //设置变量$salt $key = mhash_keygen_s2k(1,$password,$salt,10); //生成key值 $str_mhash = bin2hex(mhash($hash,$str,$key)); //使用$key值、$hash值对字串$str加密 echo "count.txt的校验码是:".$str_mhash; //输出校验码 ?>
2、运行结果
count.txt的校验码是:17dff76bfb2f87eab4bed1256dfd8800c8ec170d