golang使用crypto包解密微信数据

解密方法:

func AesDecryptCBC(encrypted []byte, key []byte, iv []byte) (decrypted []byte) {
   block, _ := aes.NewCipher(key)                              // 分组秘钥
   //blockSize := block.BlockSize()                              // 获取秘钥块的长度
   blockMode := cipher.NewCBCDecrypter(block,iv)           // 加密模式
   decrypted = make([]byte, len(encrypted))                    // 创建数组
   blockMode.CryptBlocks(decrypted, encrypted)                 // 解密
   decrypted = pkcs7UnPadding(decrypted)                       // 去除补全码
   return decrypted
}

微信返回的数据需要先做base64解码 

encryptedData,sessionKey和iv都需要先解码

//解密微信数据 base64解码后 使用aes-cbc-128 pkcs7UnPadding填充方式解密
encrypted, _ := base64.StdEncoding.DecodeString(params["encryptedData"])
keyB, _ := base64.StdEncoding.DecodeString(userInfo.SessionKey)
ivB, _ := base64.StdEncoding.DecodeString(params["iv"])
decrypted := enums.AesDecryptCBC(encrypted, keyB, ivB)

//接收数据

returnMap := make(map[string]interface{})
json.Unmarshal(decrypted, &returnMap)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于golang gin微信点餐小程序的设计与实现需要考虑以下几个方面: 1. 架构设计:可以使用MVC(Model-View-Controller)架构,将代码按功能模块划分成不同的,便于管理和维护。 2. 数据库设计:根据需求,设计适当的数据库结构,存储菜单信息、用户信息、订单信息等。可以使用关系型数据库如MySQL或非关系型数据库如MongoDB。 3. 用户认证与授权:使用微信小程序的登录功能进行用户认证,获取用户的OpenID等信息。为了保护用户数据安全,可以使用JWT(JSON Web Token)生成访问令牌,并设置权限控制,确保只有授权的用户能够访问相关接口。 4. 页面设计与交互:根据需求设计小程序的首页、菜单页、购物车、订单页等页面,合理安排页面布局和交互逻辑。可以使用小程序自带的模板或自定义组件进行页面开发。 5. 菜单管理:实现菜单的增删改查功能,括菜品的图片、名称、价格、描述等信息。为了提高用户体验,可以增加搜索和排序等功能。 6. 购物车与订单管理:用户选择菜品后,将菜品添加到购物车,并生成相应的订单。可以实现购物车的增删改查功能,以及订单的支付、取消等功能。 7. 接口设计与实现:根据需求设计合适的API接口,括菜单管理接口、用户认证接口、购物车接口、订单接口等。使用golang的gin框架实现这些接口,并进行参数校验、错误处理等。 8. 部署与测试:将小程序部署到服务器上,并进行测试,确保功能正常运行。可以使用Postman等工具对API接口进行测试,模拟用户操作验证功能是否正确。 基于以上几个方面的设计与实现,可以打造一个基于golang gin的微信点餐小程序,实现用户点餐、下单和支付的功能,提供便捷的餐饮服务。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值