微信小程序java实现AES解密并获取unionId
2017-01-24 13:28
1051 查看
如果大家使用小程序的同时还在使用公众号的话,可能会用到unionId这种功能,由于公司业务需要,我们需要使用unionId,具体使用方法,请参考微信开放平台的说明,但是在微信小程序的文档中只给出了部分语言实现的源码,竟然没有java的,小程序的开发人员是有多么懒。难道大家都不用java写后台???
什么鬼,然后开始了各种AES踩坑之路,其实参考了很多的网上的教程,再次不能一一列出来给大家了,(因为我写这篇文章的时候,已经是解决问题一周以后了),也收到管理员的很多帮助,再次写个帖子回馈大家吧,在此只列出unionId的解密方式,如果有什么问题,联系我或者回帖都可以。
另外稍加吐槽一下,
https 不要用startcom提供的免费证书!
https 不要用startcom提供的免费证书!
https 不要用startcom提供的免费证书!
重要的事情说三遍!!!!
AES.java
什么鬼,然后开始了各种AES踩坑之路,其实参考了很多的网上的教程,再次不能一一列出来给大家了,(因为我写这篇文章的时候,已经是解决问题一周以后了),也收到管理员的很多帮助,再次写个帖子回馈大家吧,在此只列出unionId的解密方式,如果有什么问题,联系我或者回帖都可以。
另外稍加吐槽一下,
https 不要用startcom提供的免费证书!
https 不要用startcom提供的免费证书!
https 不要用startcom提供的免费证书!
重要的事情说三遍!!!!
AES.java
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;import javax.crypto.NoSuchPaddingException;import javax.crypto.spec.IvParameterSpec;import javax.crypto.spec.SecretKeySpec;import java.security.*;public class AES { public static boolean initialized = false; /** * AES解密 * @param content 密文 * @return * @throws InvalidAlgorithmParameterException * @throws NoSuchProviderException */ public byte[] decrypt(byte[] content, byte[] keyByte, byte[] ivByte) throws InvalidAlgorithmParameterException { initialize(); try { Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding"); Key sKeySpec = new SecretKeySpec(keyByte, "AES"); cipher.init(Cipher.DECRYPT_MODE, sKeySpec, generateIV(ivByte));// 初始化 byte[] result = cipher.doFinal(content); return result; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } catch (NoSuchProviderException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } public static void initialize(){ if (initialized) return; Security.addProvider(new BouncyCastleProvider()); initialized = true; } //生成iv public static AlgorithmParameters generateIV(byte[] iv) throws Exception{ AlgorithmParameters params = AlgorithmParameters.getInstance("AES"); params.init(new IvParameterSpec(iv)); return params;
相关文章推荐
- 原创:微信小程序java实现AES解密并获取unionId
- 原创:微信小程序java实现AES解密并获取unionId
- 原创:微信小程序java实现AES解密并获取unionId
- 原创:微信小程序java实现AES解密并获取unionId
- 微信小程序在java后台获取用户unionid等敏感信息
- JAVA微信小程序之获取并解密用户数据(获取openId、unionId)
- 微信小程序-获取用户session_key,openid,unionid - 后端为nodejs
- Java实现对称解密小程序用户信息(AES-128-CBC算法)
- Java实现的AES加解密程序
- 详解微信小程序 登录获取unionid
- 微信小程序获取不到unionid还有小程序无法解析JSON字符串的问题
- java 小程序开发PKCS7Padding 解密方法实现,以及错误Cannot find any provider supporting AES/CBC/PKCS7Padding 解决办法
- 微信公共号开发教程java版——获取用户基本信息(UnionID机制)(七)
- 微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)
- 详解微信小程序 登录获取unionid
- 微信小程序Java登录流程(ssm实现具体功能和加解密隐私信息问题解决方案)
- Java实现的AES加解密程序
- 关于微信小程序获取unionid的问题