php接口api数据签名及验签
api数据签名作用:通过使用签名可以验证数据在传输过程中是否被篡改或修改。接收方可以使用相同的签名算法和密钥对接收到的数据进行验证,如果验证失败则表明数据被篡改过
1、数据发送方进行接口签名并传输签名字段
<?php
// 请求URL
$url = "http://localhost/test22.php"; // 替换为实际的URL
// 要发送的数据
$data = array('name' => 'John Doe','email' => 'john@example.com'
);
$key="adsad123";
$data['sign']=sign($data,$key);
// 发送POST请求
$response = postRequest($url, $data);
// 处理响应
var_dump($response);function sign($array,$key)
{// 1. 对数组按键进行升序排序ksort($array);// 2. 将键值对按顺序拼接到字符串中$str = "";foreach ($array as $k => $v) {$str .= $k . $v;}// 3. 添加密钥到拼接字符串末尾$restr = $str . $key;// 4. 对拼接字符串进行SHA1加密,并转换为大写$sign = strtoupper(sha1($restr));// 5. 返回生成的签名return $sign;
}function postRequest($url, $data) {$postData = http_build_query($data);$curl = curl_init($url);curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);curl_setopt($curl, CURLOPT_POST, true);curl_setopt($curl, CURLOPT_POSTFIELDS, $postData);$response = curl_exec($curl);if ($response === false) {$error = curl_error($curl);return "cURL Error: " . $error;} else {return $response;}curl_close($curl);
}
发送的签名数据
2、接口接受方,进行数据签名并且对比签名
<?php$key="adsad123";
$data=$_POST;
unset($data['sign']);
$sign=sign($data,$key);if($sign==$_POST['sign']){echo '验签成功';
}else{echo '验签失败';
}function sign($array,$key)
{// 1. 对数组按键进行升序排序ksort($array);// 2. 将键值对按顺序拼接到字符串中$str = "";foreach ($array as $k => $v) {$str .= $k . $v;}// 3. 添加密钥到拼接字符串末尾$restr = $str . $key;// 4. 对拼接字符串进行SHA1加密,并转换为大写$sign = strtoupper(sha1($restr));// 5. 返回生成的签名return $sign;
}

相关文章:
php接口api数据签名及验签
api数据签名作用:通过使用签名可以验证数据在传输过程中是否被篡改或修改。接收方可以使用相同的签名算法和密钥对接收到的数据进行验证,如果验证失败则表明数据被篡改过 1、数据发送方进行接口签名并传输签名字段 <?php // 请求URL $url "h…...
实战:给docusaurus文档网站配置Algolia 实现全站内容搜索功能-2023.11.16(已解决)
更新于:2023年11月16日 次文档已全部脱敏! 实战:给docusaurus文档网站配置Algolia 实现全站内容搜索功能-2023.11.16(已解决) 目录 前提条件 🍀 前提条件 具备docker环境 具有自己的网站 🍀 实验软件(…...
Ubuntu18.04安装ROS系统+turtle测试
安装 1.设置安装源 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list sudo sh -c . /etc/lsb-release && echo "deb http://mirrors.tuna.tsinghua.edu.cn/ros/ubun…...
UE基础篇五:动画
导语: 视频文档在文末 一、动画 1.1 物理资产可以用来做布娃娃系统 1.2 混合空间 调整这个值会在动画切换时有一个插值时间,表现为等一下再切 1.3 启用根运动 1.4 一些导入设置只有在导入时才有效, 1.5 动画图标可以预览调节数值<...
SELinux零知识学习十二、SELinux策略语言之客体类别和许可(6)
接前一篇文章:SELinux零知识学习十一、SELinux策略语言之客体类别和许可(5) 一、SELinux策略语言之客体类别和许可 3. 有效的客体类别 (3)System V IPC客体队列 与IPC有关的客体类别代表System V IPC资源。下表总结…...
vscode的git 工具使用
vscode的git 工具使用 目录概述需求: 设计思路实现思路分析1.git 工具的使用2.提交代码3.查看历史提交代码 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a be…...
利用回溯绕过正则表达式
目录 利用strpos的特性拿到flag 利用回溯绕过正则表达式 利用回溯次数绕过正则表达式并且实现文件上传 使用回溯绕过正则表达式waf拿到flag 本篇会讲解三个实验来分别绕过正则表达式,python的正则表达式和Javascript的正则表达式大致相同如果有正则表达式不太懂…...
Flutter执行flutter doctor报错HTTP Host Availability
问题描述 [!] HTTP Host Availability✗ HTTP host https://maven.google.com/ is not reachable. Reason: An erroroccurred while checking the HTTP host: Operation timed out解决方案 将文件flutter/packages/flutter_tools/lib/src/http_host_validator.dart中的https:…...
全栈工程师必须要掌握的前端Html技能
作为一名全栈工程师,在日常的工作中,可能更侧重于后端开发,如:C#,Java,SQL ,Python等,对前端的知识则不太精通。在一些比较完善的公司或者项目中,一般会搭配前端工程师&a…...
腾讯云服务器租用价格,腾讯云服务器租用价格多少钱一年?
腾讯云服务器租用价格,腾讯云服务器租用价格多少钱一年?腾讯云服务器有优惠活动,现在租用只需要88元/年!腾讯云服务器优惠购买入口:https://1111.mian100.cn 随着互联网的发展,越来越多的人开始选择将自己…...
QTableWidget 设置列宽行高大小的几种方式及其他常用属性设置
目录 效果: 1.列宽、行高自动分配 2.固定值 3.随内容分配列宽 随内容分配行高 4.水平方向标签拓展剩下的窗口部分,填满表格 5.列宽是自动分配的,但是第一列可手动调整宽度,而表格整体的列宽仍是自动分配的。第二、三列办法调…...
【AI视野·今日CV 计算机视觉论文速览 第277期】Fri, 27 Oct 2023
AI视野今日CS.CV 计算机视觉论文速览 Fri, 27 Oct 2023 Totally 93 papers 👉上期速览✈更多精彩请移步主页 Daily Computer Vision Papers A Coarse-to-Fine Pseudo-Labeling (C2FPL) Framework for Unsupervised Video Anomaly Detection Authors Anas Al lahham…...
【教3妹学编程-算法题】购买物品的最大开销
3妹:2哥,听说你今天发工资啦? 请我吃饭怎么样,嘿嘿 2哥 : 切,你上周还发工资了呢,也没见你请我吃饭。 3妹:哎呀, 我的工资都用来双11 shopping了, 双11过后我都吃了1周土…...
关于pandas dataframe数据转换为JSON格式存储在Redis后,读取数据时发生数据篡改的问题以及解决办法
问题:当时处理股票数据,获取到以dataframe数据结构的股票,由于Redis 是一个内存中的数据结构存储系统,但是不接受dataframe数据结构的数据,选择将其先转化为JSON格式,但发现再将JSON格式转化为原数据时&…...
Go 语言编译环境
1. 请简要介绍一下Go语言的特点。 Go语言是一种静态类型、编译型语言,由Google开发。它的主要特点包括: 简洁高效:Go语言的语法非常简洁,易于学习和使用。同时,Go语言的执行效率高,适合开发高性能的后端服…...
Leetcode刷题详解——衣橱整理
1. 题目链接:LCR 130. 衣橱整理 2. 题目描述: 家居整理师将待整理衣橱划分为 m x n 的二维矩阵 grid,其中 grid[i][j] 代表一个需要整理的格子。整理师自 grid[0][0] 开始 逐行逐列 地整理每个格子。 整理规则为:在整理过程中&am…...
短视频ai剪辑分发账号矩阵系统(招商oem)----源头技术开发
短视频ai剪辑分发账号矩阵系统 1. 视频剪辑工具——原创短视频一键生成,视频剪辑亮点分析 (1)多模式智能剪辑 包含智能混剪逻辑、智能组合、场景顺序、图片生成视频等多种模式。在视频创作上也做了简化,即使是没有剪辑能力的创…...
Ubuntu18.04安装Loam保姆级教程
系统环境:Ubuntu18.04.6 LTS 1.Loam的安装前要求: 1.1 ROS安装:参考我的另一篇博客 Ubuntu18.04安装ROS-melodic保姆级教程_灬杨三岁灬的博客-CSDN博客还是那句话,有时候加了这行也不好使,我是疯狂试了20次…...
Rust 语言中的结构体
目录 1、结构体 2、结构体的定义和实例化 2.1 使用字段初始化简写语法 2.2 使用结构体更新语法从其他实例创建实例 2.3 没有命名字段的元组结构体 2.4 没有任何字段的类单元结构体 2.5 结构体示例程序 3、方法 3.1 关联函数 3.2 多个 impl 块 1、结构体 struct&…...
Unity开发之C#基础-异常处理(Try Catch)
前言 其实本来这章应该将栈和队列的 但是后来想想 栈和队列在实际应用很少跟多的是大家了解一下栈和队列的基本常识比如先进先出的是谁后进先出的是谁这种 csdn有很多介绍栈和队列的文章 我觉得都比我理解深刻所以大家可以去搜索参照一下 今天我们继续往下讲解 如何自己主动的…...
解锁 Codex 逆向能力!一键部署 JS 逆向全能 Skill
让 Codex 默认支持 JS 逆向 Codex GPT-5.4 默认对逆向和爬虫类请求比较保守,常见表现是只讲原则,不继续落地。市面上的常规做法是先发提示词,我这边因为每次重复发送比较麻烦,所以进一步封装成了 Skill,实际验证可行。…...
固件逆向实战指南:从熵值分析到函数重建的七步法
1. 这不是“刷机教程”,而是一份固件逆向的实战切片很多人第一次听说“固件逆向”,脑子里浮现的是路由器刷OpenWrt、智能摄像头换壳跑Home Assistant,或者某款老式NAS突然不支持新硬盘,只好翻出U-Boot命令硬怼。这些确实是固件逆向…...
React 性能优化:从 3 秒卡顿到 60 帧流畅,我做了这 5 件事
摘要 React 应用越做越大,卡顿问题越来越严重?本文分享 5 个亲测有效的性能优化方案,包括 React.memo 正确使用姿势、useMemo 依赖陷阱、虚拟列表实战、代码分割策略和 Profiler 调试技巧。每个方案都附带真实代码对比,帮你把页面…...
Oracle EBS COA 嵌入 SAP 利润中心段:设计逻辑、哲学、思路、用途、优缺点深度分析
Oracle EBS COA 嵌入 SAP 利润中心段:设计逻辑、哲学、思路、用途、优缺点深度分析先明确核心前提: 你当前场景是集团双系统架构(SAPOracle EBS),或Oracle EBS 承接 SAP 迁移 / 数据映射,计划在 EBS 会计科…...
【无人机通信】无线通信网络中无人机UAV定位与带宽分配的优化算法在确保地面用户服务质量QoS约束的同时,最大化网络吞吐量附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 dz…...
【Android】Hypic 醒图国际版 最新版-免登录
【Android】Hypic 醒图国际版 最新版-解锁永久会员-免登录 链接:https://pan.xunlei.com/s/VOtJaC8K4sK_rrqnINu3HULdA1?pwddfdj# Hypic醒图国际版是一款功能强大的照片编辑应用程序,专为满足专业摄影师和业余爱好者的多样化需求而设计。...
【混合可再生能源模拟】使用遗传算法优化光伏板和电池的容量附matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、程序设计科研仿真。🍎完整代码获取 定制创新 论文复现点击:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 dz…...
告别野指针和内存泄漏:用Cppcheck给你的C/C++项目做个免费‘体检’(附VS项目集成教程)
用Cppcheck为C/C项目构建自动化代码质量防护网 在软件开发领域,代码质量直接影响着产品的稳定性和安全性。对于C/C这类系统级语言来说,内存泄漏、野指针等问题往往潜伏在代码深处,直到运行时才突然爆发。而静态代码分析工具就像一位经验丰富的…...
new一个指针再被智能指针接管和直接调用make_unique有什么区别? (接上篇的未完待续)
上篇代码有错误,在本篇幅更正#include <iostream> #include <memory> #include <vector> #include <utility> #include <cstddef> #include <type_traits> //std::enable_if_t<!std::is_array<T>::value, int&…...
机场应急处置保障:黎阳之光无感赋能,精准调度救援,提升处置能力
机场空间结构复杂、人员高度密集、设备设施集中,易受突发天气、设备故障、突发险情等各类突发事件影响,应急处置、人员疏散、救援调度的效率,是保障机场安全运行的核心关键。传统应急模式下,现场人员分布态势模糊、被困位置无法快…...
