PHP加密扩展库—Mhash扩展库
2021-05-05 11:28
标签:消息 syn md5 filename lan 扩展 数学 blank type 什么是Mhash扩展库:Mhash是基于离散数学原理的不可逆向的php加密方式扩展库,其在默认情况下不开启。mhash的可以用于创建校验数值,消息摘要,消息认证码,以及无需原文的关键信息保存(如密码)等。 1.Mhash扩展库安装 关于Mhash库的安装跟Mcrypt扩展库安装是类似的,在这里就不做多介绍了,大家可以参考上一篇文章《PHP加密扩展库—Mcrypt扩展库》!深圳dd马达 2.Mhash扩展库常量 Mhash库支持 MD5,SHA,CRC32等多种散列算法,可以使用mhash_count()和mhash_get_hash_name()函数输出支持的算法名称。下面一起看下示例代码: 1 2 3 4 5 6 7 8 输出结果为: 注意:如果在实际应用中使用上面的常量,需要在算法名称前面加上 MHASH_作为前缀,比如 CRC32 表示为 MHASH_CRC32。 3.Mhash应用 相对比 Mcrypt 扩展库的 30 多个函数,Mhash库中只有 5 个函数,除了上面使用到的两个函数外,下面来介绍其他的 3 个函数。 (1)mhash_get_block_size()函数 函数语法格式如下: 1 该函数用来获取参数 hash 的区块大小,比如:mhash_get_biock_size(MHASH_CRC32)。 (2)mhash()函数 函数语法格式如下: 1 该函数返回一个哈希值。参数 hash 为要使用的算法,参数data 是要加密的数据,参数key是加密使用的密钥。 (3) mhash_keygen_s2k()函数 函数语法格式如下: 1 该函数将根据参数password 和 salt 返回一个单位为字节的 key值,参数 hash 为要使用的算法。其中 salt 为一个固定 8 字节的值,如果用户给出的数值小与 8 字节,将用 0 补齐。 下面实例中使用了 mhash_keygen_s2k()函数生成一个校验码,并使用 bin2hex()函数将二进制结果转换为十六进制。具体代码如下: 1 2 3 4 5 6 7 8 9 10 11 PHP加密扩展库—Mhash扩展库 标签:消息 syn md5 filename lan 扩展 数学 blank type 原文地址:https://www.cnblogs.com/furuihua/p/12108654.html
header(
"Content-Type:text/html; charset=utf-8"
);
$num
= mhash_count();
//函数返回最大的hash id
echo
"mhash库支持的算法有:
";
for
(
$i
=0;
$i
$num
;
$i
++){
echo
$i
.
"=>"
.mhash_get_hash_name(
$i
).
"
".
""
;
//输出每一个hash id 的名称
}
?>
int mhash_get_block_size ( int
$hash
)
string mhash(int hash,string data[,string key])
string mhash_keygen_s2k ( int
$hash
, string
$password
, string
$salt
, int
$bytes
)
header(
"Content-Type:text/html; charset=utf-8"
);
$filename
=
"08.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
"文件 08.txt 的校验码是:"
.
$str_mhash
;
//输出校验码
?>