Java实现微信小程序加密数据解密算法【大牛经验】

Java实现微信小程序加密数据解密算法_数据


一、概述

微信推出了小程序,很多公司的客户端应用不仅具有了APP、H5、还接入了小程序开发。但是,小程序中竟然没有提供Java版本的加密数据解密算法。这着实让广大的Java开发人员蛋疼。

微信小程序提供的加密数据解密算法链接为:https://mp.weixin.qq.com/debug/wxadoc/dev/api/signature.html

我们下载的算法示例如下:

Java实现微信小程序加密数据解密算法_微信小程序_02

木有Java!! 木有Java!! 木有Java!!

那么如何解决这个问题,我们一起来实现Java版本的微信小程序加密数据解密算法。

二、实现Java版本的微信小程序加密数据解密算法

1、创建项目

这里,我们创建一个Maven工程,具体创建步骤略。

2、配置pom.xml

我们在pom.xml中加入如下配置。

Java实现微信小程序加密数据解密算法_java_03

3、实现AES类

Java实现微信小程序加密数据解密算法_java_04

Java实现微信小程序加密数据解密算法_java_05

Java实现微信小程序加密数据解密算法_java_06


4、实现WxPKCS7Encoder类

Java实现微信小程序加密数据解密算法_微信小程序_07

Java实现微信小程序加密数据解密算法_微信小程序_08


5、实现WXCore类

这个类主要是对具体算法的封装,统一对外提供方法。

Java实现微信小程序加密数据解密算法_数据_09

Java实现微信小程序加密数据解密算法_java_10


三、测试

1、运行Java版微信小程序加密数据解密算法

这里我们就直接运行WXcore类的main方法,这里的测试数据都是从Python版微信小程序加密数据解密算法的示例程序中提出来的。我们的运行结果如下:

{"openId":"oGZUI0egBJY1zhBYw2KhdUfwVJJE","nickName":"Band","gender":1,"language":"zh_CN","city":"Guangzhou","province":"Guangdong","country":"CN","avatarUrl":"http://wx.qlogo.cn/mmopen/vi_32/aSKcBBPpibyKNicHNTMM0qJVh8Kjgiak2AHWr8MHM4WgMEm7GFhsf8OYrySdbvAMvTsw3mo8ibKicsnfN5pRjl1p8HQ/0","unionId":"ocMvos6NjeKLIBqg5Mr9QjxrP1FA","watermark":{"timestamp":1477314187,"appid":"wx4f4bc4dec97d474b"}}

2、运行Python版微信小程序加密数据解密算法

这里我们在python环境中直接运行微信官方提供的Python版小程序加密数据解密算法,结果如下:

{u'province': u'Guangdong', u'openId': u'oGZUI0egBJY1zhBYw2KhdUfwVJJE', u'language': u'zh_CN', u'city': u'Guangzhou', u'gender': 1, u'avatarUrl': u'http://wx.qlogo.cn/mmopen/vi_32/aSKcBBPpibyKNicHNTMM0qJVh8Kjgiak2AHWr8MHM4WgMEm7GFhsf8OYrySdbvAMvTsw3mo8ibKicsnfN5pRjl1p8HQ/0', u'watermark': {u'timestamp': 1477314187, u'appid': u'wx4f4bc4dec97d474b'}, u'country': u'CN', u'nickName': u'Band', u'unionId': u'ocMvos6NjeKLIBqg5Mr9QjxrP1FA'}

通过对比以上结果可知,我们自行使用Java实现的Java版微信小程序加密数据解密算法与微信官方提供的Python版小程序加密数据解密算法结果一致。



Java实现微信小程序加密数据解密算法_java_11

Java实现微信小程序加密数据解密算法_微信小程序_12Java实现微信小程序加密数据解密算法_微信小程序_13

长按指纹,识别二维码,一键关注

Java实现微信小程序加密数据解密算法_微信小程序_14Java实现微信小程序加密数据解密算法_微信小程序_13

长按指纹,识别二维码,一键关注

Java实现微信小程序加密数据解密算法_数据_16Java实现微信小程序加密数据解密算法_微信小程序_13

长按指纹,识别二维码,一键关注

Java实现微信小程序加密数据解密算法_数据_18Java实现微信小程序加密数据解密算法_微信小程序_13

长按指纹,识别二维码,一键关注