Go:基于 HTTP Header 传输签名参数
Go语言精选
共 974字,需浏览 2分钟
· 2020-09-02
概述
调用方 向 接口提供方,申请调用 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)
推荐阅读
站长 polarisxu
自己的原创文章
不限于 Go 技术
职场和创业经验
Go语言中文网
每天为你
分享 Go 知识
Go爱好者值得关注
评论
Go Heap Profile 怎么了?
Go heap profile 是常常用来检查内存泄露和内存占用大问题的问题的手段,而且非常常用。而且,我们也经常创建两个间隔较长的 heap profile, 获取它们的差值来方便查看内存泄露: Hi, 使用多年的 go pprof 检查内存泄漏的方法居然是错的?! [1]今天,度厂的一位同学提出
GoCN
0
教你基于 Jenkins 搭建一套 CI/CD 系统
原文链接:https://mp.weixin.qq.com/s/KVc4IFky1z7kZn-7bz79DQ一、CI/CD环境介绍本次要实现如下效果,开发人员完成功能开发并提交代码到gitlab仓库,jenkins自动完成拉取代码、编译构建、代码扫描(sonarqube)、打
码农编程进阶笔记
0
Go 1.22 的新增功能系列之二:reflect.TypeFor
Go 1.22 的第一个候选版本已经发布,这意味着最终版本即将发布,现在是我在博客中介绍我在这个周期中所做工作的时候了。像往常一样,我的贡献很小,但它们是我的,所以我将从幕后的角度来谈谈它们。首先是reflect.TypeFor。这是整个函数:// TypeFor returns the [Type
GoCN
0
一站式解决方案:基于 Arthas 实现服务发现和权限控制
来源:juejin.cn/post/7281849496983994383👉 欢迎加入小哈的星球 ,你将获得: 专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡 / 赠书福利全栈前后端分离博客项目 2.0 版本完结啦, 演示链接
小哈学Java
0
Go早期是如何在Google内部发展起来的
2007年Go诞生于Google,2009年Google正式对外宣布了Go语言的开源!时至今日,距离Go开源已经过去了近15个年头了[1]!Go在Google公司内部究竟是怎样的一个状态呢?前Google员工Yves Junqueira近期撰文从其个人所见所闻谈了Go在Google的历程[2]!这里
GoCN
0
Go 1.22 的新增功能系列之一:cmp.Or
截至撰写本文时,Go 1.22 已经发布几个月了。早就该结束我为 1.22 所做的工作的系列了。抱歉耽搁了这么久,我最近忙于生活事务。如果您错过了我关于reflect.TypeFor(https://blog.carlana.net/post/2024/golang-reflect-type-for
GoCN
1
i/o timeout , 希望你不要踩到这个net/http包的坑
文章持续更新,可以微信搜一搜「golang小白成长记」第一时间阅读,回复【教程】获golang免费视频教程。本文已经收录在GitHub https://github.com/xiaobaiTech/golangFamily , 有大厂面试完整考点和成长路线,欢迎Star。问题我们来看一段日常代码。
Go语言进阶学习
0
再获殊荣!乐普新品平板多参数监护仪荣获两项国际大奖
近日,乐普新品平板多参数监护仪AIView VX凭借创新前瞻的设计理念及卓越不凡的产品体验,一举斩获“2024年德国iF设计奖”和“2024年德国红点奖”两项国际大奖,再度彰显乐普独特产品魅力及研发与工业设计的强大实力。作为国际公认的全球工业设计顶级奖项,红点设计奖与德国“iF奖”、美国“IDEA奖
乐普医疗AI
1