小程序模板网

微信小程序加密数据解密的java实现

发布时间:2018-04-23 11:19 所属栏目:小程序开发教程

首先借鉴了两篇文章:

http://www.cnblogs.com/nosqlcoco/p/6105749.html 
http://blog.csdn.NET/sinat_29519243/article/details/70186622

首先吐槽一下,微信小程序这个设计,其实密文中包含的用于开发的有用信息并不是很多。

解密后的类似:

 

				
  1.  
  2. {"openId":"oy9H90Nqxxxxxxxxxxx0BJmuw",
  3.  
  4. "nickName":"xxxxxxxxx",
  5.  
  6. "gender":1,
  7.  
  8. "language":"zh_CN",
  9.  
  10. "city":"city",
  11.  
  12. "province":"province",
  13.  
  14. "country":"country",
  15.  
  16. "avatarUrl":"https://wx.qlogo.cn/mmopen/vi_32/xxxxxxxxOcvbibeJxx0",
  17.  
  18. "watermark":{"timestamp":timestamp,"appid":"wx58b6xxxxxxxxx627"
  19.  
  20. }

解密需要登录的时候 提供的几个参数:

  1. 密文:encryptedData

  2. session_key

  3. 偏移向量 iv

登录的几个东西如何获取这里简单说下:

  1. session_ID的获取:wx.login()函数的返回里面包含了CODE.利用这个CODE,到这个地址去交换:

https://api.weixin.qq.com/sns/jscode2session?grant_type=authorization_code&js_code=CODE&appid=APPID&secret=APP_SRCRET。

  1. iv和encryptedData的获取:wx.getUserInfo()的调用的时候,同时设置属性withCredentials: true,
 

				
  1. wx.getUserInfo({ withCredentials: true, success: function(res) { console.log(res) that.globalData.userInfo = res.userInfo typeof cb == "function" && cb(that.globalData.userInfo) } })

就可以获取到所有的参数。

Java侧实现解密需要如下的包:

  1. bcprov-jdk15on-157.jar ----主要是AES解码

  2. commons-codec-1.10.jar ----主要是base64编码

核心代码:

 

				
  1.  
  2. [java] view plain copy
  3.  


易优小程序(企业版)+灵活api+前后代码开源 码云仓库:starfork
本文地址:https://www.eyoucms.com/wxmini/doc/course/23908.html 复制链接 如需定制请联系易优客服咨询:800182392 点击咨询
QQ在线咨询