微信小程序手机号解密
在小程序登陆的时候 我们会需要获取手机号 但是前端不会给我们直接传手机号 而是将手机号进行了加密 我们需要解密才能够拿到手机号 进行后面的某些操作
看图 在登陆的时候 前端会给我们传一个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;
}
自律的最高境界 就是享受孤独~
