首页
更多应用
Search
1
修改iview的标签为i-的形式而不是驼峰的形式
3,185 阅读
2
PHP微信和企业微信签名
2,932 阅读
3
在VUE中怎么全局引入sass文件
2,598 阅读
4
解决Macos下storm系列IDE卡顿的问题
2,427 阅读
5
vscode硬件占用较高解决方案
2,257 阅读
默认分类
JS
VUE
CSS
mac使用技巧
React
fastmock
登录
/
注册
Search
标签搜索
react
js
vue
vscode
nodejs
项目
代码
webpack
工具
nginx
小程序
css
fastmock
eslint
npm
typescript
http
vue-cli3
git
浏览器
fastmock技术社区
累计撰写
107
篇文章
累计收到
25
条评论
首页
栏目
默认分类
JS
VUE
CSS
mac使用技巧
React
fastmock
页面
更多应用
搜索到
1
篇与
的结果
2026-01-17
后端新手初学接口验签和摘要
接口验签(Signature Verification)什么是接口验签?接口验签是一种验证请求或响应是否被篡改的机制。通过生成和验证签名,确保数据在传输过程中没有被篡改,并且请求确实来自合法的客户端。验签的原理客户端生成签名:客户端使用约定的算法(如 HMAC-SHA256 或 MD5)和密钥,对请求参数进行签名。签名通常基于请求的参数、时间戳、随机字符串等数据。签名结果会附加到请求中(如 sign 字段)。服务端验证签名:服务端收到请求后,使用相同的算法和密钥,对请求参数重新计算签名。将计算出的签名与客户端传递的签名进行比对。如果一致,说明请求未被篡改;如果不一致,则拒绝请求。验签的步骤客户端:将请求参数按一定规则排序(如按字母顺序)。将排序后的参数拼接成字符串。使用密钥和算法生成签名。将签名附加到请求中。服务端:提取请求中的签名。按相同规则对请求参数排序并拼接。使用密钥和算法重新计算签名。比对签名,验证请求的合法性。示例假设客户端发送以下请求:{ "param1": "value1", "param2": "value2", "timestamp": "1698765432", "nonce": "123456" }客户端使用 HMAC-SHA256 和密钥 secret 对参数进行签名:import hmac import hashlib params = "param1=value1¶m2=value2×tamp=1698765432&nonce=123456" key = "secret" signature = hmac.new(key.encode(), params.encode(), hashlib.sha256).hexdigest()生成的签名会附加到请求中:{ "param1": "value1", "param2": "value2", "timestamp": "1698765432", "nonce": "123456", "sign": "生成的签名" }服务端收到请求后,按相同规则重新计算签名并验证。接口摘要(Digest)什么是接口摘要?接口摘要是对请求或响应内容的哈希值,用于验证数据的完整性。它确保数据在传输过程中没有被篡改。摘要的原理生成摘要:对请求或响应的内容(如 JSON 或 XML)进行哈希计算(如 SHA-256)。将哈希值附加到请求或响应中(如 digest 字段)。验证摘要:接收方对收到的内容重新计算哈希值。将计算出的哈希值与传递的摘要进行比对。如果一致,说明数据未被篡改;如果不一致,则拒绝数据。摘要的步骤发送方:对请求或响应的内容进行哈希计算。将哈希值附加到请求或响应中。接收方:提取请求或响应中的摘要。对内容重新计算哈希值。比对哈希值,验证数据的完整性。示例假设客户端发送以下请求:{ "param1": "value1", "param2": "value2" }客户端使用 SHA-256 对请求内容进行哈希计算:import hashlib content = '{"param1":"value1","param2":"value2"}' digest = hashlib.sha256(content.encode()).hexdigest()生成的摘要会附加到请求中:{ "param1": "value1", "param2": "value2", "digest": "生成的摘要" }服务端收到请求后,按相同规则重新计算摘要并验证。接口验签 vs 接口摘要特性接口验签接口摘要目的验证请求的完整性和真实性验证数据的完整性依赖需要密钥(对称或非对称)不需要密钥生成方式基于参数和密钥生成签名基于内容生成哈希值验证方式比对签名比对哈希值适用场景确保请求来自合法客户端确保数据未被篡改实际应用场景接口验签:用于身份验证和防篡改,如支付接口、API 调用。接口摘要:用于确保数据传输的完整性,如文件上传、数据同步。注意事项密钥管理:验签的密钥需要严格管理,避免泄露。时间戳和随机数:在验签中加入时间戳和随机数,防止重放攻击。哈希算法:选择安全的哈希算法(如 SHA-256),避免使用弱算法(如 MD5)。
2026年01月17日
1 阅读
0 评论
0 点赞