收藏
回答

获取微信平台证书解密报错-Tag Mismatch

javax.crypto.AEADBadTagException: Tag mismatch!

at com.sun.crypto.provider.GaloisCounterMode.decryptFinal(GaloisCounterMode.java:578)

at com.sun.crypto.provider.CipherCore.finalNoPadding(CipherCore.java:1116)

at com.sun.crypto.provider.CipherCore.fillOutputBuffer(CipherCore.java:1053)

at com.sun.crypto.provider.CipherCore.doFinal(CipherCore.java:853)

at com.sun.crypto.provider.AESCipher.engineDoFinal(AESCipher.java:446)

at javax.crypto.Cipher.doFinal(Cipher.java:2164)

如题,按照官方的文档执行也是这样,所有参数都有了,包括APIv3秘钥,依然报错

调用的URL是:https://api.mch.weixin.qq.com/v3/certificates

解密代码:

private static String aesgcmDecrypt(String aad, String iv, String cipherText) throws Exception { 

final Cipher cipher = Cipher.getInstance(ALGORITHM, "SunJCE"); 

SecretKeySpec key = new SecretKeySpec(AES_APIV3_KEY.getBytes(), "AES"); 

GCMParameterSpec spec = new GCMParameterSpec(TAG_LENGTH_BIT, iv.getBytes()); 

cipher.init(Cipher.DECRYPT_MODE, key, spec); 

cipher.updateAAD(aad.getBytes()); 

return new String(cipher.doFinal(Base64.getDecoder().decode(cipherText))); 




最后一次编辑于  09-12
回答关注问题邀请回答
收藏

5 个回答

  • Crystal
    Crystal
    09-12

    顶一个

    09-12
    赞同 4
    回复
  • 微信支付技术助手1
    微信支付技术助手1
    09-12

    https://wechatpay-api.gitbook.io/wechatpay-api-v3/chang-jian-wen-ti/qian-ming-xiang-guan

    09-12
    赞同
    回复 1
    • Laughable J
      Laughable J
      09-12
      不好意思,您回答的跟我这个好像不是同一内容
      09-12
      回复
  • Laughable J
    Laughable J
    09-12

    自顶

    09-12
    赞同 1
    回复 2
    • Kim
      Kim
      10-12
      请问解决了吗
      10-12
      回复
    • Laughable J
      Laughable J
      10-16
      解决了。APIv3秘钥错了!仔细检查下是否填错
      10-16
      回复
  • Kim
    Kim
    10-10

    你这个问题解决了吗? 有人管吗

    10-10
    赞同
    回复
  • 陈镇
    陈镇
    10-10

    你这个问题解决了吗?

    10-10
    赞同
    回复