小程序
小游戏
企业微信
微信支付
扫描小程序码分享
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html
2 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
奇怪的是我这总报pad block corrupted
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
java基本上github上能搜出一大堆大三方库帮你把整个流程都写好了。
实在要demo,那就
调用code2session之后的解密无非就是调用下Cipher
通过code调用code2session获得的sessionKey,用户请求进来iv和encryptedData
try { /* <dependency> * <groupId>org.bouncycastle</groupId> * <artifactId>bcprov-jdk16</artifactId> * <version>1.46</version> * </dependency> */ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", new BouncyCastleProvider()); SecretKeySpec key = new SecretKeySpec(Base64.decode(sessionKey), "AES"); IvParameterSpec ivParameterSpec = new IvParameterSpec( Base64.decode(iv) ); cipher.init(Cipher.DECRYPT_MODE, key, ivParameterSpec); byte[] encryptedDataBytes = Base64.decode(encryptedData); byte[] result = cipher.doFinal(encryptedDataBytes); // 解密后的JSON String json = new String(result, "UTF-8"); // 然后该干嘛干嘛 } catch (Exception e) { // ... }
嗯,就酱紫。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
奇怪的是我这总报pad block corrupted
java基本上github上能搜出一大堆大三方库帮你把整个流程都写好了。
实在要demo,那就
调用code2session之后的解密无非就是调用下Cipher
通过code调用code2session获得的sessionKey,用户请求进来iv和encryptedData
try { /* <dependency> * <groupId>org.bouncycastle</groupId> * <artifactId>bcprov-jdk16</artifactId> * <version>1.46</version> * </dependency> */ Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding", new BouncyCastleProvider()); SecretKeySpec key = new SecretKeySpec(Base64.decode(sessionKey), "AES"); IvParameterSpec ivParameterSpec = new IvParameterSpec( Base64.decode(iv) ); cipher.init(Cipher.DECRYPT_MODE, key, ivParameterSpec); byte[] encryptedDataBytes = Base64.decode(encryptedData); byte[] result = cipher.doFinal(encryptedDataBytes); // 解密后的JSON String json = new String(result, "UTF-8"); // 然后该干嘛干嘛 } catch (Exception e) { // ... }
嗯,就酱紫。