微信小程序手机号解密

在小程序登陆的时候 我们会需要获取手机号 但是前端不会给我们直接传手机号 而是将手机号进行了加密 我们需要解密才能够拿到手机号 进行后面的某些操作

看图 在登陆的时候 前端会给我们传一个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;
}
自律的最高境界 就是享受孤独~
经验分享 程序员 微信小程序 职场和发展