用 session_key ,encryptedData ,iv 解密获取手机号
import com.anmoyi.common.Base64; //此包为自己封装的,只要能解密base64都行
import java.security.spec.AlgorithmParameterSpec;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
/**
* 解密用户手机号
* @param keyStr sessionkey
* @param ivStr ivData
* @param encDataStr 带解密数据
* @return
* @throws Exception
* @date 2019年05月08日
*/
public static String decrypt(String keyStr, String ivStr, String encDataStr)throws Exception {
byte[] encData = Base64.decode(encDataStr);
byte[] iv =Base64.decode(ivStr);
byte[] key = Base64.decode(keyStr);
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");
}
结果返回
{
"phoneNumber": "187*********",
"purePhoneNumber": "187********",
"countryCode": "86",
"watermark":
{
"appid":"APPID",
"timestamp":TIMESTAMP
}
}