1、小程序传参数js_code(用户获取session_key)和encryptedData、vi(用于解密手机号)

发送http请求调接口:

https://api.weixin.qq.com/sns/jscode2session?appid=固定的appid&secret=固定的secret&js_code=每次小程序传参&grant_type=authorization_code

返回数据如下,取出session_key用于解密:

{"session_key":"EKjnfpQ6LFxScbtOg==","expires_in":7200,"openid":"oBEMf0UbSQ6xpgUcI"}

2、拿session_key和encryptedData、vi解密手机号

import org.apache.commons.codec.binary.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.security.spec.AlgorithmParameterSpec;/*** Created by hgg on 2018/2/24.* 小程序AES解密*/
public class AESDecodeUtils {public static void main(String[] args) throws Exception {byte[] encrypData = Base64.decodeBase64("mgxuts7uEbdnBclp0Qim0TS3MGoaSyE09MqTvbeG9Z1PjxsDwjVH0FxG1Q==");byte[] ivData = Base64.decodeBase64("SG386etdA3sOXHxqfnw==");byte[] sessionKey = Base64.decodeBase64("Fn6r4IOiZJBXn4hQ0w==");System.out.println(decrypt(sessionKey,ivData,encrypData));}public static String decrypt(byte[] key, byte[] iv, byte[] encData) throws Exception {AlgorithmParameterSpec ivSpec = new IvParameterSpec(iv);Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");SecretKeySpec keySpec = new SecretKeySpec(key, "AES");cipher.init(Cipher.DECRYPT_MODE, keySpec, ivSpec);//解析解密后的字符串return new String(cipher.doFinal(encData),"UTF-8");}
}

encryptedData 解密后为以下 json 结构,详见加密数据解密算法

{"phoneNumber": "13580006666",  "purePhoneNumber": "13580006666", "countryCode": "86","watermark":{"appid":"APPID","timestamp":TIMESTAMP}
}
参数 类型 说明
phoneNumber String 用户绑定的手机号(国外手机号会有区号)
purePhoneNumber String 没有区号的手机号
countryCode String 区号

借鉴文章,感谢!

自己的服务解密,获取微信小程序用户的手机号码相关推荐

  1. PHP 获取微信小程序用户手机号

    截止到目前为止,小程序通过获取session_key与encryptedData与iv进行解密获取手机号的方法已经不行了,只能通过点击按钮来实现获取微信用户的手机号,本文仅以PHP为例 大概流程: 1 ...

  2. asp获取微信小程序用户手机号,asp微信小程序手机号获取,微信小程序手机号asp获取方法

    今天搞的这个项目里需要用到asp获取小程序用户的手机号,在网上找了下资源,一个也没有找到,难道用asp获取不到微信小程序用户的手机号码吗?非也,经过一系列操作,成功了,asp照样可以获取小程序用户的手 ...

  3. 利用 node.js 云函数解密获取微信小程序的手机号码等加密信息 encryptedData 的内容。

    首先你必须会用微信小程序的云函数功能: 1.创建一个名为token的云函数 2.在云开发的云函数管理中添加对应的token云函数 3.在开发工具中编辑云函数token 4.点击右键,安装并部署 大致是 ...

  4. 获取小程序用户信息+java_java获取微信小程序用户信息

    第一步:获取openid.session_key等信息. /** * 获取微信小程序的用户openid和session_key/unionid * 返回格式:{"session_key&qu ...

  5. VFP获取微信小程序用户openID,易如反掌

    社群的魏总问我,怎么去取用户的微信小程序的唯一ID,昨天也给他解答了.今天把这个答案沉淀下来.于是有了这篇. 这个唯一ID,我们一般叫openid,是唯一标定用户身份的,每个微信在这个小程序中是唯一的 ...

  6. php获取微信小程序用户高清头像的方法

    微信小程序获取用户高清头像 获取到用户头像的路径之后执行此函数, 返回值及时高清头像路径 获取到用户头像的路径之后执行此函数, 返回值及时高清头像路径 function headimgHD(image ...

  7. 使用php获取微信小程序用户openid

    <?php/*** desc: 获取小程序用户openid*/getOpenid(); function getOpenid() {$code = $_GET['code'];//小程序传来的c ...

  8. php获取微信小程序用户头像,微信小程序获取用户头像+昵称+openid,小程序登录!附前端后端源码!...

    做一款小程序,如果需要判断用户,当然要获取一些基本信息,例如头像,昵称,openid.所以本次案例就直接上代码了. 小程序前端 index.wxml 获取头像昵称 {{userInfo.nickNam ...

  9. uni-app微信小程序获取手机号;微信小程序获取手机号,获取到后需要进行解密;微信小程序获取手机号失败 Error:该appId没有权限

    方法1.uni-app登录加获取手机号解密-直接看此篇即可解决 微信小程序获取手机号注意点: 1.需要先登录,微信小程序登录看这篇 2.手机号获取到时加密的,需要后端解密或者前端自己解密(解密时候就会 ...

最新文章

  1. 英特尔cpu发布时间表_英特尔第11代桌面CPU将会支持PCIe4.0,Z490主板或可支持PCIe4.0...
  2. 【笔记】公钥密码学之基于离散对数的密码体制
  3. Mybatis应用(一)应用步骤
  4. 飞鸽传书2011帮助文档
  5. redis-软件安装redis5
  6. 如何在JavaScript中使用when()有条件地更改值
  7. maven-compiler-plugin的理解
  8. LaTex字体、符号汇总
  9. leaflet地图原理_Leaflet地图框架使用手册
  10. 缓冲区,缓存,fflush(stdin)如何使用?
  11. 以CS1231为例,解释电子方案开发中的ADC芯片
  12. 【FPGA知识点】八段共阳极数码管编码表
  13. 液晶屏COG封装技术-工业显示领域主流
  14. python发送邮件封装
  15. 计算机香港专业学校排名,去香港读计算机专业什么学校好
  16. python公众号留言功能_Python 爬取公众号文章、评论
  17. 怎么用计算机截图快捷键,教您怎么使用电脑自带的截图快捷键
  18. C3P0的使用 Spring配置数据库连接池
  19. LockSupport的park和unpark的原理
  20. 波形分辨率与FFT分辨率的区别

热门文章

  1. Flutter侧边栏控件-SideBar
  2. 联想拯救者Y7000P装win10与Ubuntu18.04双系统
  3. Python模块介绍使用:zmail模块读取邮箱内邮件信息
  4. 棋子(又是利用数学头脑的一天)
  5. 福建省第二届“闽盾杯”部分Write Up
  6. np.histogram()直方图分布
  7. 在JSP页面中获取JavaScript中var变量的值
  8. python123测验答案数值运算程序_优学院《筑梦新时代》章节测试答案高校邦《Python程序设计基础(中国石油大学定制班次)》考试期末答案...
  9. Python 发红包(用numpy)
  10. nVidia驱动安装详解