Java实现微信小程序加密数据解密算法
一.概述
微信推出了小程序,很多公司的客户端应用不仅具有了APP、H5、还接入了小程序开发。但是,小程序中竟然没有提供Java版本的加密数据解密算法。
微信小程序提供的加密数据解密算法链接为
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
二.实现Java版本的微信小程序加密数据解密算法
- 1.配置pom.xml
我们在pom.xml中加入如下配置,其中bcprov-jdk15on是为了支持AES的BouncyCastleProvider,而commons-codec则是为了顺利的对session_key,iv,encryptData进行Base64的编解码
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk16</artifactId>
<version>1.46</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.29</version>
</dependency>
- 2.封装WxDecryptUtil 解密工具类
import net.sf.json.JSONObject;
import org.apache.commons.codec.binary.Base64;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
impo