微信小程序手机号解密
在小程序登陆的时候 我们会需要获取手机号 但是前端不会给我们直接传手机号 而是将手机号进行了加密 我们需要解密才能够拿到手机号 进行后面的某些操作
看图 在登陆的时候 前端会给我们传一个code 我们从中拿到openId 和sessionKey 对应的就是上面的sessionKey 而我们还需要前端传两个字段 encrtotedData 会包含一些头像 手机号之类的信息 其中手机号是最关键的
iv是加密的一个初始向量 这个也不能缺少
接下里就要进行解密了
注意要导包
<!--解密需要的依赖--> <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.59</version> </dependency>
wxDecrypt 就是最核心的方法了
解密出来是一个json对象 需要转化 这里也给出实体类
String jsonResult = new WxBizDecryptUtils().wxDecrypt(encryptedData, seesionKey, iv); PhoneVo phoneVo = JSON.parseObject(jsonResult, PhoneVo.class);
@Data @AllArgsConstructor @NoArgsConstructor public class PhoneVo { //手机号 国外的手机会带区号 private String phoneNumber; //没有区号的手机号 private String purePhoneNumber; //区号 private String countryCode; private Watermark watermark; } @Data @AllArgsConstructor @NoArgsConstructor public class Watermark { private Long timestamp; private String appid; }
自律的最高境界 就是享受孤独~