微信开发平台解密算法
2021-05-21 本文已影响0人
Geroge1226
1、说明
小程序开发对接微信计步(https://developers.weixin.qq.com/miniprogram/dev/api/open-api/werun/wx.getWeRunData.html)。微信返回的并不会直接返回用户运动数据(敏感)。而是返回加密加签数据。
-
查看加密数据解密算法API文档,大致流程如下:
image.png
2、java版实现
解密工具类
public static String decode(String sessionKey,String encryptedData,String iv)
throws Exception{
byte[] encryptData = Base64.decodeBase64(encryptedData);
byte[] ivData = Base64.decodeBase64(iv);
byte[] sessionKeyB = Base64.decodeBase64(sessionKey);
Security.addProvider(new BouncyCastleProvider());
AlgorithmParameterSpec ivSpec = new IvParameterSpec(ivData);
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding","BC");
SecretKeySpec keySpec = new SecretKeySpec(sessionKeyB, "AES");
cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);
byte[] doFinal = cipher.doFinal(encryptData);
return new String(doFinal);
}