';
$algos = hash_algos(); //列出所有支持的hash算法
// print_r($algos);
// ------------------------------------------------------
// 字符串hash
$data = 'The quick brown fox jumped over the lazy dog.';
echo hash('md5', $data); //md5 哈希
$key = 'md5-key';
echo hash_hmac('md5', $data, $key); //使用 HMAC 方法生成带有密钥的哈希值
// ------------------------------------------------------
// 文件hash
$file = 'hmac.txt';
echo hash_file('md5', $file);
echo hash_hmac_file('md5', $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('md5', $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('sha1', $file); 0
0
相关文章
标题:PHP后端交互方案选择指南:内嵌PHP vs AJAX异步调用
如何在 PHP 中使用 shell_exec 正确执行多行 Shell 命令
如何在 PHP 中使用 shell_exec 执行多行 Shell 命令
如何在 PHP 的 shell_exec 中正确执行多行 Shell 命令
如何在不同文件夹中提交表单到目标处理页?
相关标签:
本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门AI工具
相关专题
本专题系统讲解 Golang 在 gRPC 服务开发中的完整实践,涵盖 Protobuf 定义与代码生成、gRPC 服务端与客户端实现、流式 RPC(Unary/Server/Client/Bidirectional)、错误处理、拦截器、中间件以及与 HTTP/REST 的对接方案。通过实际案例,帮助学习者掌握 使用 Go 构建高性能、强类型、可扩展的 RPC 服务体系,适用于微服务与内部系统通信场景。
8
2026.01.15
公务员递补名单公布时间不固定,通常在面试前,由招录单位(如国家知识产权局、海关等)发布,依据是原入围考生放弃资格,会按笔试成绩从高到低递补,递补考生需按公告要求限时确认并提交材料,及时参加面试/体检等后续环节。要求核心是按招录单位公告及时响应、提交材料(确认书、资格复审材料)并准时参加面试。
44
2026.01.15
(一)符合拟调剂职位所要求的资格条件。 (二)公共科目笔试成绩同时达到拟调剂职位和原报考职位的合格分数线,且考试类别相同。 拟调剂职位设置了专业科目笔试条件的,专业科目笔试成绩还须同时达到合格分数线,且考试类别相同。 (三)未进入原报考职位面试人员名单。
58
2026.01.15
笔试成绩查询入口已开通,考生可登录国家公务员局中央机关及其直属机构2026年度考试录用公务员专题网站http://bm.scs.gov.cn/pp/gkweb/core/web/ui/business/examResult/written_result.html,查询笔试成绩和合格分数线,点击“笔试成绩查询”按钮,凭借身份证及准考证进行查询。
11
2026.01.15
本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。
65
2026.01.14
热门下载
相关下载
精品课程






