Go 实现aes-256-gcm加解密处理过程

本文详细介绍如何将PHP的sha1加密和aes-256-gcm解密算法转换到Go语言中,包括sha1函数、密钥生成、AES解密与加密示例,以及base64的编码解码处理。

【知识点】

包含php的知识点:str_pad、sha1、pack、base64_encode、base64_decode、strlen、substr、openssl_decrypt、openssl_encrypt。

包含的go知识点:

sha1        哈希加密,要注意下返回的是字节数组

string([]byte)        字节数组转换成字符串,注意这里转换的二进制字符串,很多乱码

hex.EncodeToString        字节数组转成16进制,示例中有用到来转换sha1得到的值

strconv.ParseUint        字符串转换为无符号int类型,对应php的pack方法

base64.StdEncoding.DecodeString        base64解码,对应php的base64_decode

base64.StdEncoding.EncodeString        base64编码,对应php的base64_encode

strings.Replace        替换字符串,用于替换base64字符串的安全字符-和_

rand        随机字符串

crypto/cipher   aes加解密模块

参考:aes-256-gcm_python3_php7_golang_mb5fe94870638be的技术博客_51CTO博客

【需求背景】

在对接美团小游戏的时候,支付成功通知,使用了【sha1】的签名还有【aes-256-gcm】的加密数据。官方只有php7.1以上的例子,但是项目使用了golang,需要转换下。

接口文档:

文档上的php-demo例子:

//PHP demo(版本使用7.1以上)
/**
    * 生成密钥
    * $appId:开发者后台看
    * $appSecret:开发者后台看
 */
function createKey($appId, $appSecret)
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值