小程序模板網(wǎng)

微信小程序加密數(shù)據(jù)解密的java實現(xiàn)

發(fā)布時間:2018-04-23 11:19 所屬欄目:小程序開發(fā)教程

首先借鑒了兩篇文章:

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

首先吐槽一下,微信小程序這個設計,其實密文中包含的用于開發(fā)的有用信息并不是很多。

解密后的類似:

 

				
  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. }

解密需要登錄的時候 提供的幾個參數(shù):

  1. 密文:encryptedData

  2. session_key

  3. 偏移向量 iv

登錄的幾個東西如何獲取這里簡單說下:

  1. session_ID的獲?。簑x.login()函數(shù)的返回里面包含了CODE.利用這個CODE,到這個地址去交換:

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

  1. iv和encryptedData的獲?。簑x.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) } })

就可以獲取到所有的參數(shù)。

Java側實現(xiàn)解密需要如下的包:

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

  2. commons-codec-1.10.jar ----主要是base64編碼

核心代碼:

 

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


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://22321a.com/wxmini/doc/course/23908.html 復制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點擊咨詢
QQ在線咨詢