基于 HTTP Header 传输签名参数
时间:2022-07-24
本文章向大家介绍基于 HTTP Header 传输签名参数,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
概述
调用方 向 接口提供方,申请调用 Key
和 Secret
,用于生成签名。
- Key 为调用方身份标识
- Secret 为加密盐值
加密盐值可以使用 1Password 在线生成,如下图。
签名参数传递
不建议在 URL 或 FORM 中新增参数,建议使用 HTTP Header 中的两个参数 Authorization
、Date
存储签名信息,其中 Authorization
存储签名,Date
存储签名信息。
Authorization
参数用来对传输的数据进行验证,防止篡改,由 3 部分组成:
- Prefix 为前缀,用来识别调用方身份;
- Space 为空格分隔符;
- Digest 为摘要,一段加密串,加密方法建议使用
HMAC
算法。
Date
参数用来验证请求的时效性。
参数示例
Authorization: blog /Rg4zjqqWUpVfLh3uGRwkfEEV5o=
Date: Sat, 22 Aug 2020 09:15:41 GMT
Digest 参考示例
secret := "U1joiH8yDr8rzj28CMYT"
rfc1123Date := time.Now().Format(http.TimeFormat)
buffer := bytes.NewBuffer(nil)
buffer.WriteString("?id=1")
buffer.WriteString(rfc1123Date)
hash := hmac.New(sha1.New, []byte(secret))
hash.Write(buffer.Bytes())
digest := base64.StdEncoding.EncodeToString(hash.Sum(nil))
fmt.Println(digest)
- 未来机器人大脑将获取互联网知识自我学习
- 【架构拾集】: Android 移动应用架构设计
- Dore 混合应用框架 —— 基于 React Native 的混合应用迁移方案
- Android6.0源码分析之View(二)--measure Android6.0源码分析之View(一)
- 程序员,2017年你的技能树上增加了哪些新技能?
- Android6.0源码分析之View(一)
- 2017 年,我挖的那些开源软件坑
- Android6.0蓝牙开发中获取附近低功耗蓝牙设备结果权限问题分析
- 我的技术投资策略:如何决定学习哪一个新技术的?
- 我的技术投资策略:如何决定学习哪一个新技术的?
- Android6.0源码之蓝牙研究汇总(一)--from初学者
- Android6.0蓝牙协议之OPP
- 简单直白教你理解Java中四大引用强引用,软引用,弱引用,虚引用
- ubuntu系统上配置git
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- thinkPHP和onethink微信支付插件分享
- PHP各种常见经典算法总结【排序、查找、翻转等】
- php字符串截取函数mb_substr用法实例分析
- PHP利用DWZ.CN服务生成短网址
- php精度计算的问题解析
- PHP使用Session实现上传进度功能详解
- php常用字符串查找函数strstr()与strpos()实例分析
- php 根据URL下载远程图片、压缩包、pdf等文件到本地
- PHP使用HTML5 FormData对象提交表单操作示例
- python接入支付宝的实例操作
- php实现网页上一页下一页翻页过程详解
- Yii 使用intervention/image拓展实现图像处理功能
- PHP常用的类封装小结【4个工具类】
- 微信公众号之主动给用户发送消息功能
- laravel异步监控定时调度器实例详解