微信小程序传参到后端解析出手机号(java实现)
需要的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实现)相关推荐
- uniapp微信小程序传参方法和注意事项
传参方法: uni-app官网https://uniapp.dcloud.io/tutorial/vue-components.html#概念 注意事项: 在vue项目中,如果子组件里的props名字 ...
- 微信向下滑动怎么传参服务器,微信小程序 - 传参的几种方式
Hibernate 的dialect 大全 RDBMS 方言 DB2 org.hibernate.dialect.DB2Dialect DB2 AS/400 org.hibernate.dialect ...
- 微信小程序传参的参数中有问号 识别不了“?”(问号)后面的内容
在传值页面使用encodeURIComponent ,进行值的加密 var planDetail = encodeURIComponent(e.currentTarget.dataset.text.p ...
- Android APP跳转微信小程序和APP跳转支付宝小程序传参
Android APP跳转微信小程序和APP跳转支付宝小程序传参 微信开放文档链接 MINIPROGRAM_TYPE_PREVIEW:体验版. MINIPROGRAM_TYPE_TEST:开发版 MI ...
- 【项目实战课】微信小程序图像识别模型前后端部署实战
欢迎大家来到我们的项目实战课,本期内容是<微信小程序图像识别模型前后端部署实战>.所谓项目实战课,就是以简单的原理回顾+详细的项目实战的模式,针对具体的某一个主题,进行代码级的实战讲解. ...
- 在微信小程序中,使用wxParse插件解析HTML/md富文本
1. 在微信小程序中,使用wxParse插件解析HTML富文本 下载文件 GitHub地址:https://github.com/icindy/wxParse 解压文件,在解压后的文件夹里找到wxPa ...
- 原生app 打开uni小程序 传参问题
最近要在一个原生app的基础上开发新功能, 新功能和原app没有太多交集, 考虑到原生app开发复杂,工期较长, 决定在原生app的基础上整合uni小程序, 使用uniapp开发新功能, 在整合的过 ...
- 微信小程序调用php,微信小程序调用PHP后台接口 解析纯html文本
微信小程序调用php后台接口,解析纯html文本,效果图片预览 1.微信js动态传参: wx.request({ url: 'https://m.****.com/index.php/home/xia ...
- 微信小程序传数组给后台(thinkphp后台接受前端数组参数)
场景:需要前端传关联数组给后端 尝试:常规写法不好使 解决:前端json序列化 对象数组 为 字符串 str,然后将此字符串 str 作为参数的值传给后端(比如 schools: str ),后端将收 ...
最新文章
- Maven+mybatis教程
- 【基础复习】二:预处理、const与sizeof
- 莫博士:Facebook别再推诿,请承担打击假新闻责任
- zcmu-1783(01字典树)
- 外部中断0——51程序
- Kubernetes探针踩坑记
- 2020蓝桥杯省赛---java---A---10( 字串排序)
- mysql 字符转换函数是_MySQL日期和字符串转换函数
- php explore im,浏栏器-explore.class.php
- 2017.8.7 数学作业 思考记录
- VS Code 翻译插件
- mysql 无符号 负数_mysql下有符号数和无符号数的相关问题
- Ubuntu安装OpenTSDB
- bzoj 2555: SubString
- WinEdt Latex使用人家提供的模板时无法插入参考文献的方法
- 7-3 小L的难题 (15 分)
- 制度罚则-- 代码走查规范
- alanwang[GDOU] 直接插入排序法简单演示
- Simulink代码生成: MinMax模块及其代码
- python和java哪个好薪资高-Java和Python哪个薪资更高?