php扩展hash模块基本使用的示例代码

黄舟
发布: 2023-03-06 16:22:02
原创
1377 人浏览过

php扩展hash模块基本使用的示例代码

<?php
echo &#39;<pre class="brush:php;toolbar:false">&#39;;

$algos = hash_algos(); //列出所有支持的hash算法
// print_r($algos);


// ------------------------------------------------------
// 字符串hash
$data = &#39;The quick brown fox jumped over the lazy dog.&#39;;
echo hash(&#39;md5&#39;, $data); //md5 哈希
$key = &#39;md5-key&#39;;
echo hash_hmac(&#39;md5&#39;, $data, $key); //使用 HMAC 方法生成带有密钥的哈希值


// ------------------------------------------------------
// 文件hash
$file = &#39;hmac.txt&#39;;
echo hash_file(&#39;md5&#39;, $file);
echo hash_hmac_file(&#39;md5&#39;, $file, $key);


// ------------------------------------------------------
/**
 * @param $algo hash算法
 * @param $data string|array 字符串或者字符串数组
 * @param $options 进行哈希运算的可选设置,目前仅支持:HASH_HMAC。当指定此选项时,必须指定 key 参数
 * @param $key 当 options 参数为 HASH_HMAC 时,使用此参数传入进行 HMAC 哈希运算时的共享密钥
 */
function my_hash_data($algo, $data, $options = 0, $key = NULL) {
	// resource hash_init ( string $algo [, int $options = 0 [, string $key = NULL ]] )
	$ctx = hash_init($algo, $options, $key);
	if(is_string($data)) {
		hash_update($ctx, $data);
	} else if(is_array($data)) {
		foreach($data as $s) {
			hash_update($ctx, $s); //填充数据, 可以多次调用, 和拼接字符串效果一样
		}
	}
	return hash_final($ctx); //输出最后的数据
}

// test code
echo my_hash_data(&#39;md5&#39;, $data);


// ------------------------------------------------------
/**
 * 文件类型 hash
 */
function my_hash_file($algo, $filename, $options = 0, $key = NULL) {
	$ctx = hash_init($algo, $options, $key);
	/*
	两个函数的不同之处:
	 1. hash_update_stream	第二个参数是一个打开的文件句柄
	 2. hash_update_file	第二个参数是一个文件名
	*/
	hash_update_file($ctx, $filename);
	return hash_final($ctx);
}

// test code
echo my_hash_file(&#39;sha1&#39;, $file);
登录后复制

以上是php扩展hash模块基本使用的示例代码的详细内容。更多信息请关注PHP中文网其他相关文章!

相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!