https:
通过这个接口获取的sessionKey
encryptedData 和js_code 以及Iv 都是前段通过组件调用生成的
我需要通过这个接口获取对数据解密获取用户的手机号,但是每个用户,每天第一次的时候都会解密失败
public class Main {
public static void main(String[] args) {
String encryptedData = "M0wBgDdvZchU76gg1IhUyFCz0hwvjC9D09W8HVOIfC83w7tDYy/1QU0UooLapUWQvzPa1FQijVs8J5ONyXdZsfwrz4RqbqyGdJ/CjATKaUXnGZIgG9zN7Ya46mMuSrMwLN0PH1hpGHf3yk9Y245ToT1hwBc4qzh1GsbKgrw6xO2IG76OAj+fcrKDKsmqNys3TzNxnZCYj4BsJlMbBse4DQ==";
String sessionKey = "wk63HbifGK/eKj+5anldVg==";
String iv = "gwcnT9jIsmH6iAeoyp9wlg==";
String s = Main.decryptPhoneNumber(encryptedData, sessionKey, iv);
}
public static String decryptPhoneNumber(String encryptedData, String sessionKey, String iv) {
try {
byte[] dataByte = Base64.decode(encryptedData);
byte[] keyByte = Base64.decode(sessionKey);
byte[] ivByte = Base64.decode(iv);
SecretKeySpec keySpec = new SecretKeySpec(keyByte, "AES");
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, keySpec, new IvParameterSpec(ivByte));
byte[] resultByte = cipher.doFinal(dataByte);
return new String(resultByte);
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
检查下js_code前端获取的是否正确,获取手机号需要用button返回的code.
再检查下后端APPID等信息是否是当前小程序的