解密微信小程序加密的微信运动数据(java)
使用java springmvc对微信小程序获取到的加密微信运动数据进行解密
//解密微信运动数据@ResponseBody@RequestMapping(value = "getEncryptedData", method = RequestMethod.GET)public String getUserInfo(String encryptedData,String sessionkey,String iv){System.out.println("encryptedData"+encryptedData);System.out.println("sessionkey:"+sessionkey);System.out.println("iv:"+iv);// 被加密的数据byte[] dataByte = Base64.decode(encryptedData);// 加密秘钥byte[] keyByte = Base64.decode(sessionkey);// 偏移量byte[] ivByte = Base64.decode(iv);try {// 如果密钥不足16位,那么就补足int base = 16;if (keyByte.length % base != 0) {int groups = keyByte.length / base + (keyByte.length % base != 0 ? 1 : 0);byte[] temp = new byte[groups * base];Arrays.fill(temp, (byte) 0);System.arraycopy(keyByte, 0, temp, 0, keyByte.length);keyByte = temp;}// 初始化Security.addProvider(new BouncyCastleProvider());Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding","BC");SecretKeySpec spec = new SecretKeySpec(keyByte, "AES");AlgorithmParameters parameters = AlgorithmParameters.getInstance("AES");parameters.init(new IvParameterSpec(ivByte));cipher.init(Cipher.DECRYPT_MODE, spec, parameters);// 初始化byte[] resultByte = cipher.doFinal(dataByte);if (null != resultByte && resultByte.length > 0) {String result = new String(resultByte, "UTF-8");System.out.println("result:"+result);return result;}} catch (NoSuchAlgorithmException e) {e.printStackTrace();} catch (NoSuchPaddingException e) {e.printStackTrace();} catch (InvalidParameterSpecException e) {e.printStackTrace();} catch (IllegalBlockSizeException e) {e.printStackTrace();} catch (BadPaddingException e) {e.printStackTrace();} catch (UnsupportedEncodingException e) {e.printStackTrace();} catch (InvalidKeyException e) {e.printStackTrace();} catch (InvalidAlgorithmParameterException e) {e.printStackTrace();} catch (NoSuchProviderException e) {e.printStackTrace();}return null;}
解密微信小程序加密的微信运动数据(java)相关推荐
- 微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed
微信小程序加密解密 C# 以及 填充无效,无法被移除错误的解决方案 Padding is invalid and cannot be removed 参考文章: (1)微信小程序加密解密 C# 以及 ...
- 微信小程序与服务器对称加解密,细说CryptoJs使用(微信小程序加密解密)
前言 CryptoJs是google推出的一款前段解密类库.功能强大,包含很多的前段解密算法. 一.google下载地址: 二次开发版本 google原版地址 二.常用方法 Testing webso ...
- 微信小程序开发(一) 微信登录流程
文/YXJ 地址:http://blog.csdn.net/sk719887916/article/details/53761107 最近在研究微信小程序开发,非常有意思的一个东西.花了一点时间写了一 ...
- 【微信小程序系列】微信小程序连接后端数据库(SSM)案例
[微信小程序系列]微信小程序连接后端数据库(SSM)案例 登录页面 login.wxml <view class="page"><loading hidden=& ...
- wechat-app-mall — 微信小程序商城,微信小程序微店
简介: wechat-app-mall - 微信小程序商城,微信小程序微店 网盘下载地址: http://kekewangLuo.cc/5Y95XKVEXkL0 图片:
- PHP更新小程序,微信小程序Tab页切换更新数据详细介绍
这篇文章主要介绍了微信小程序 Tab页切换更新数据的相关资料,需要的朋友可以参考下 微信小程序 Tab页切换更新数据 微信小程序还处于内测阶段,最不方便的莫过于官方在不停的更新,前几天写的功能隔个几天 ...
- 微信小程序开发学习笔记001--认识微信小程序,第一个微信小程序
第一天,认识微信小程序,第一个微信小程序 1.什么是微信小程序? 是h5网页嘛?不是 微信张小龙说: 小程序是一种不需要下载安装即可使用的应用, 它实现了应用"触手可及"的梦想,用 ...
- 【微信小程序系列】微信小程序超简单教程,基本语法,获取用户基本数据信息,实现对云数据库的增删改查及小程序外部api的引用示例(附源码)
[微信小程序系列]微信小程序超简单教程 小程序项目结构 静态页面的构成 HTML:结构 css:样式 js:行为 小程序 页面全部存放在pages, 而且pages目录只能存放页面 页面包括4个文件, ...
- [转]微信小程序之购物车 —— 微信小程序实战商城系列(5)
本文转自:http://blog.csdn.net/michael_ouyang/article/details/70755892 续上一篇的文章:微信小程序之商品属性分类 -- 微信小程序实战商城 ...
最新文章
- NLP 预训练家族再思考
- Asp.net細微的效率提升
- js能否打印服务器端文档,js打印远程服务器文件
- 去除le-table表格的hover效果
- 【Java】Stream流和方法引用
- 5G 十项全能、搭载麒麟 820 芯片,1899 元起的荣耀 X10 来了!
- 放之四海皆适用的设计原则(二)
- 高分四号数据计算表观反射率
- JAVA环境配置详细教程
- android设置动画循环播放,Android动画之AnimatorSet如何循环执行
- 爬虫(二)—解析真实网页(猫途鹰)
- 【推荐系统】 一、推荐系统简介
- 中职网络安全大赛攻防阶段加固(仅供参考!!!)
- 苹果PD20W快充方案缺货,芯片供应不足,怎么破局?
- 劲爆!群晖docker视频
- Profibus DP新总结
- BCH分叉是一次站队博弈
- HyperLogLog 使用及其算法原理详细讲解
- 成都生物研究所高性能计算服务器,专家人才库数据----中科院成都生物所资源库...
- Java程序员面试技巧:这样面试通过率增加90%
热门文章
- 2022年iFLYTEKA.I.开发者大赛疫情微博情绪识别挑战赛
- java zxing条形码去掉两边空白,密度调整,固定条形码宽度
- Oasis Sapphire黑客松来袭 | 构建隐私DApp,赢取9000美元奖励!
- Vue + vite 切换 favicon图标
- E1使用Padavan固件网口做WAN的设置
- Java解决下载--文件名乱码
- python商务图表_Excel 数据之美:科学图表与商业图表的绘制(全彩)
- 复制网页上不能复制的文字
- 计算机无法连接蓝牙键盘,电脑如何连接无线键盘_电脑上怎么连接蓝牙键盘-win7之家...
- 【arduino】常用芯片ATMEGA328P-AU 32TQFP资料详解