【知识点】
包含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)

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





