200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 微信小程序数据拼接_微信小程序用户数据解密算法Java版

微信小程序数据拼接_微信小程序用户数据解密算法Java版

时间:2018-10-04 23:22:03

相关推荐

微信小程序数据拼接_微信小程序用户数据解密算法Java版

打开官方文档,开心~ 腾讯爸爸竟然给提供了解密算法

然而我下载解压后人傻了

可能鹅厂没养Java程序猿吧

那就看这C++改造吧

publicclassAnthCodeVerify{private final static String cipherString = "AES/CBC/PKCS5Padding"; public static JSONObject decrypt(String encryptedData, String iv, String sessionKey)throws Exception {String jsonStr; try {BASE64Decoder base64Decoder = new BASE64Decoder();byte[]encryptedByte=base64Decoder.decodeBuffer(encryptedData); byte[] sessionKeyByte = base64Decoder.decodeBuffer(sessionKey); byte[] ivByte = base64Decoder.decodeBuffer(iv); SecretKeySpec skeySpec = new SecretKeySpec(sessionKeyByte, "AES"); Cipher cipher = Cipher.getInstance(cipherString); IvParameterSpec ivParameterSpec = new IvParameterSpec(ivByte); cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivParameterSpec); byte[] original = cipher.doFinal(encryptedByte); jsonStr = new String(original); } catch (Exception ex) {throw new Exception("Illegal Buffer"); } JSONObject jsonObject = new JSONObject(jsonStr); return jsonObject; }}

解密后的数据格式如下:

{"openId": "OPENID", "nickName": "NICKNAME", "gender": GENDER, "city": "CITY", "province": "PROVINCE", "country": "COUNTRY", "avatarUrl": "AVATARURL", "unionId": "UNIONID", "watermark": {"appid":"APPID", "timestamp":TIMESTAMP }}

Q1: 为什么解密后的数据中没有unionId?需要小程序管理员将小程序绑在微信开放平台

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。