mhash 哈稀函数库

发表于:2007-07-14来源:作者:点击数: 标签:
本函数库支持多种哈稀演算法,例如最出名的 MD5、SHA1 或 GOST,还有其它多种的哈稀演算法,列示如下: MHASH_MD5 MHASH_SHA1 MHASH_HAVAL MHASH_RIPEMD160 MHASH_RIPEMD128 MHASH_SNEFRU MHASH_TIGER MHASH_GOST MHASH_CRC32 MHASH_CRC32B 欲使用本函数库要

本函数库支持多种哈稀演算法,例如最出名的 MD5、SHA1 或 GOST,还有其它多种的哈稀演算法,列示如下:

  • MHASH_MD5
  • MHASH_SHA1
  • MHASH_HAVAL
  • MHASH_RIPEMD160
  • MHASH_RIPEMD128
  • MHASH_SNEFRU
  • MHASH_TIGER
  • MHASH_GOST
  • MHASH_CRC32
  • MHASH_CRC32B

欲使用本函数库要先下载 mhash-x.x.x.tar.gz,网址为 http://sasweb.de/mhash 。当然还要编译 mhash 程序库,之后才能编译 PHP 程序,在编译 PHP 程序时,记得要加 --with-mhash 选项打开系统的 mhash 功能。

本函数库适合用来产生检查码 (checksums)、数位代信息或者其它功能,如下例:

<?php
$input = "Let us meet at 9 o' clock at the secret place." ;
$hash = mhash ( MHASH_SHA1 , $input );
print "哈稀值为 " . bin2hex ( $hash ). "\n" ;
?>

在浏览器看到的字符串是

哈稀值为 d3b85d710d8f6e4e5efd4d5e67d041f9cecedafe


mhash_get_hash_name: 取得哈稀演算法名称。
mhash_get_block_size: 取得哈稀方式的区块大小。
mhash_count: 取得哈稀 ID 的最大值。
mhash: 计算哈稀值。

mhash_get_hash_name
取得哈稀演算法名称。
语法: string mhash_get_hash_name(int hash);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数取得哈稀演算法的名称。返回值为名称字符串,若没有指定的哈稀演算法则返回 false 或输入的名称。
使用范例
下例返回的字符串为 MD5。
<?php
$hash = MHASH_MD5;
print mhash_get_hash_name($hash);
?>

mhash_get_block_size
取得哈稀方式的区块大小。
语法: int mhash_get_block_size(int hash);
返回值: 整数
函数种类: 编码处理
内容说明: 本函数用来取得哈稀演算的区块大小。参数为编码名称,返回整数治募?单位为位组 (byte)。

mhash_count
取得哈稀 ID 的最大值。
语法: int mhash_count(void);
返回值: 整数
函数种类: 编码处理
内容说明: 本函数用来取得哈稀演算的最大 ID 值。在使用哈稀计算时,会从 0 开始计数到使用的数值。本函数不用输入参数。
使用范例
<?php
$nr = mhash_count();
for($i = 0; $i <= $nr; $i++) {
echo sprintf("哈稀 %s 的区块大小为 %d\n", mhash_get_hash_name($i), mhash_get_block_size($i));
}
?>

mhash
计算哈稀值。
语法: string mhash(int hash, string data);
返回值: 字符串
函数种类: 编码处理
内容说明: 本函数依指定的哈稀演算法计算哈稀值。参数 hash 为指定的哈稀演算法;参数 data 为欲计算的字符串值。

原文转自:http://www.ltesting.net