评论

吐了,终于把微信退款的req_info解密出来了,这里留给别人参考(java)。

微信退款 解密 req_info

  1. 当java报错 JCE cannot authenticate the provider BC
    需要引入jar包,在pom文件中加入
<dependency>
     <groupId>org.bouncycastle</groupId>
     <artifactId>bcprov-jdk15on</artifactId>
     <version>1.59</version>
</dependency>
  1. 解密过程
 public static String decryptRefundNotifyToString(String reqInfo,String apiKey)
            throws GeneralSecurityException, IOException {
        try {

            Security.addProvider(new BouncyCastleProvider());

            String apiKeyMD5 = MD5Util.encode(apiKey).toLowerCase();

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

            Cipher cipher = Cipher.getInstance("AES/ECB/PKCS7Padding","BC");

            cipher.init(Cipher.DECRYPT_MODE,key);

            return new String(cipher.doFinal(Base64.getDecoder().decode(reqInfo)), StandardCharsets.UTF_8);
        } catch (NoSuchAlgorithmException | NoSuchPaddingException e) {
            throw new IllegalStateException(e);
        }
    }
最后一次编辑于  07-28  
点赞 1
收藏
评论

1 个评论

  • 百晓生
    百晓生
    08-12

    需要替换jre之类的东西吗?


    08-12
    赞同
    回复
登录 后发表内容