代码:go研发实际生产中hmac的验签过程

本文介绍了Go语言在实际生产中如何使用HMAC进行验签。验签过程涉及发送方和接收方共享密钥,发送方将原始信息与使用密钥计算的HMAC值一并发送,接收方再利用相同密钥验证HMAC值以确保数据安全。文中还给出了具体的验签代码示例,强调了验签的安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章目录

简介

go 开发生产中常用的验签的包是 hmac 包

服务端一般验签流程是:发送方和接收方共享一个密钥 secret,然后发送方要发消息给接收方,会把原始信息(明文)和使用 secret 计算的 hmac 值(签名)一起发过去,接收方接收到消息之后,使用自己手中的 secret 把传过来的原始信息重新计算一下 hmac,看自己计算的 hmac 和发送过来的 hmac 如果匹配就认为验签成功

为什么不怕数据中途截获呢?因为如果别人中途截获了数据,知道原始信息和签名,但是无法反向解析,比如 mock 了签名没法求出原始信息,mock 了原始信息又因为不知道 secret 没法拿到签名,因此中途是安全的

验签代码

核心思想就是:双方有密钥,发送方把原始信息+签名发给接收方,接收方用密钥对原始信息重新加密,如果得到的签名和接收的一致,即验签通过

msg 常常是 req 中请求参数或者 header 组成的信息,相当于原文,secret 是密钥,通过 sha256 密钥 secret 加密原文拿到 newSign 这个新签名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

abcnull

您的打赏是我创作的动力之一

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值