需要的Maven依赖


<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.15</version>
</dependency><dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.54</version>
</dependency>

Controller层 接受小程序端的传参 data / iv / session_key 进行解析

@PostMapping("/miniGetPhone")
@ResponseBody
public ResultMap miniGetPhone(HttpServletRequest request, String encryptedData, String iv, String session_key)
{JSONObject obj=getPhoneNumber(session_key,encryptedData,iv);//解密电话号码String sphone=obj.get("phoneNumber").toString();if(obj.isEmpty() && sphone==null){return ResultMap.error().put("手机号解密失败!",400);}else {return ResultMap.ok().put("uphone",sphone);}
}//解析电话号码
public JSONObject getPhoneNumber(String session_key, String encryptedData, String iv) {byte[] dataByte = Base64.decode(encryptedData);byte[] keyByte = Base64.decode(session_key);byte[] ivByte = Base64.decode(iv);try {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/PKCS5Padding");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");return JSONObject.parseObject(result);}} catch (Exception e) {e.printStackTrace();}return null;}

以上为java后端解析手机号的简单实现。好记性不如烂笔头~

微信小程序传参到后端解析出手机号(java实现)相关推荐

  1. uniapp微信小程序传参方法和注意事项

    传参方法: uni-app官网https://uniapp.dcloud.io/tutorial/vue-components.html#概念 注意事项: 在vue项目中,如果子组件里的props名字 ...

  2. 微信向下滑动怎么传参服务器,微信小程序 - 传参的几种方式

    Hibernate 的dialect 大全 RDBMS 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect ...

  3. 微信小程序传参的参数中有问号 识别不了“?”(问号)后面的内容

    在传值页面使用encodeURIComponent ,进行值的加密 var planDetail = encodeURIComponent(e.currentTarget.dataset.text.p ...

  4. Android APP跳转微信小程序和APP跳转支付宝小程序传参

    Android APP跳转微信小程序和APP跳转支付宝小程序传参 微信开放文档链接 MINIPROGRAM_TYPE_PREVIEW:体验版. MINIPROGRAM_TYPE_TEST:开发版 MI ...

  5. 【项目实战课】微信小程序图像识别模型前后端部署实战

    欢迎大家来到我们的项目实战课,本期内容是<微信小程序图像识别模型前后端部署实战>.所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的实战讲解. ...

  6. 在微信小程序中,使用wxParse插件解析HTML/md富文本

    1. 在微信小程序中,使用wxParse插件解析HTML富文本 下载文件 GitHub地址:https://github.com/icindy/wxParse 解压文件,在解压后的文件夹里找到wxPa ...

  7. 原生app 打开uni小程序 传参问题

    最近要在一个原生app的基础上开发新功能,  新功能和原app没有太多交集, 考虑到原生app开发复杂,工期较长, 决定在原生app的基础上整合uni小程序, 使用uniapp开发新功能, 在整合的过 ...

  8. 微信小程序调用php,微信小程序调用PHP后台接口 解析纯html文本

    微信小程序调用php后台接口,解析纯html文本,效果图片预览 1.微信js动态传参: wx.request({ url: 'https://m.****.com/index.php/home/xia ...

  9. 微信小程序传数组给后台(thinkphp后台接受前端数组参数)

    场景:需要前端传关联数组给后端 尝试:常规写法不好使 解决:前端json序列化 对象数组 为 字符串 str,然后将此字符串 str 作为参数的值传给后端(比如 schools: str ),后端将收 ...

最新文章

  1. Maven+mybatis教程
  2. 【基础复习】二:预处理、const与sizeof
  3. 莫博士:Facebook别再推诿,请承担打击假新闻责任
  4. zcmu-1783(01字典树)
  5. 外部中断0——51程序
  6. Kubernetes探针踩坑记
  7. 2020蓝桥杯省赛---java---A---10( 字串排序)
  8. mysql 字符转换函数是_MySQL日期和字符串转换函数
  9. php explore im,浏栏器-explore.class.php
  10. 2017.8.7 数学作业 思考记录
  11. VS Code 翻译插件
  12. mysql 无符号 负数_mysql下有符号数和无符号数的相关问题
  13. Ubuntu安装OpenTSDB
  14. bzoj 2555: SubString
  15. WinEdt Latex使用人家提供的模板时无法插入参考文献的方法
  16. 7-3 小L的难题 (15 分)
  17. 制度罚则-- 代码走查规范
  18. alanwang[GDOU] 直接插入排序法简单演示
  19. Simulink代码生成: MinMax模块及其代码
  20. python和java哪个好薪资高-Java和Python哪个薪资更高?

热门文章

  1. 天梯赛(c++) 古风排版
  2. nao机器人行走速度_NAO5机器人的一些使用心得
  3. html5/Css3 网页设计 带音乐与食品模块
  4. DNSPod十问德佑刘勇:传统地产业数字化转型会让10万人失业吗?
  5. 1.了解NVIDIA显卡架构
  6. Cesium加载局部地区单张图片底图
  7. 年底了,一起来撸个视频播放器吧!
  8. kafka问题 Aattempt to heart beat failed since the group is rebalancing
  9. MATLAB计算二元一次方程组
  10. 什么是分布式系统,如何学习分布式系统?