小程序
小游戏
企业微信
微信支付
扫描小程序码分享
1)官方的文档和demo没有提供了方法?
2)搞这么复杂干什么,多此一举
3)网上搜的那些方法基本不能用。
我用的是java,在mac 电脑上调试。
8 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
不要转base64
public static String decryptData(String base64Data,String key) throws Exception { System.out.println(key); SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("utf-8"), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, keySpec); return new String(cipher.doFinal(Base64Util.decodeByte(base64Data)),"utf-8"); } public static void main(String[] args) { String reqInfo="xxxxxx"; // String reqInfoB=Base64Util.encode(reqInfo); // System.out.println(Base64Util.decode(reqInfoB)); try { String jiemi=WxApiV3AesUtil.decryptData(reqInfo,MD5Util.getMd5("key").toLowerCase()); System.out.println(jiemi); } catch (Exception e) { e.printStackTrace(); } }
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
2021了,各位老板这个问题解决了吗
参考这个:
微信公众号退款通知(Java)_weixin_39407297的博客-CSDN博客
https://blog.csdn.net/weixin_39407297/article/details/79261800
为何我一直都是 ` illegal base64 data at input byte 1110` ,只有我一个人是这样嘛?
有没有解决了的(java),搞个这加密,心累
现在也遇到这个解密问题,无限制包什么的都下载解决了 结果一直报javax.crypto.BadPaddingException: pad block corrupted
网上搜了各种方法 尝试完了还是报这个错 请问大佬有解决这个问题吗?
解密步骤如下:
(1)对加密串A做base64解码,得到加密串B
(2)对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置 )
(3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)
解密demo:https://github.com/btbxbob/wxpay-refund-notify-decrypt-helper
1)我说的是java下的,不是php的,所以下面在java下讨论问题
2)步骤中的 base64界面和MD5都没什么问题
3)关键是 AES-256-ECB解密(PKCS7Padding)这个东西很复杂,网上说什么TMD美国出口限制,要从oracle官网下载 无限制包,修改jre下的 /jre/lib/security/US_export_policy.jar,local_policy.jar,每个jre版本还下的都不一样。
4)最可恨的是,我都按照上面要求做了,还是不行,出现异常 Exception in thread "main" java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/ECB/PKCS7Padding
5)所以疯掉,最关键做这个没有意义。。。一个退款通知要单独加密,而其他都不加密,搞不懂为什么啊
一样,也不给个示例代码。太垃圾了
解密方式
只有php,没有java吗??
您好,现在只有这个,请作为参考,后续有别的语言,会通知到各位的。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
不要转base64
public static String decryptData(String base64Data,String key) throws Exception { System.out.println(key); SecretKeySpec keySpec = new SecretKeySpec(key.getBytes("utf-8"), "AES"); Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, keySpec); return new String(cipher.doFinal(Base64Util.decodeByte(base64Data)),"utf-8"); } public static void main(String[] args) { String reqInfo="xxxxxx"; // String reqInfoB=Base64Util.encode(reqInfo); // System.out.println(Base64Util.decode(reqInfoB)); try { String jiemi=WxApiV3AesUtil.decryptData(reqInfo,MD5Util.getMd5("key").toLowerCase()); System.out.println(jiemi); } catch (Exception e) { e.printStackTrace(); } }
2021了,各位老板这个问题解决了吗
参考这个:
微信公众号退款通知(Java)_weixin_39407297的博客-CSDN博客
https://blog.csdn.net/weixin_39407297/article/details/79261800
为何我一直都是 ` illegal base64 data at input byte 1110` ,只有我一个人是这样嘛?
有没有解决了的(java),搞个这加密,心累
现在也遇到这个解密问题,无限制包什么的都下载解决了 结果一直报javax.crypto.BadPaddingException: pad block corrupted
网上搜了各种方法 尝试完了还是报这个错 请问大佬有解决这个问题吗?
解密方式
解密步骤如下:
(1)对加密串A做base64解码,得到加密串B
(2)对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置 )
(3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)
解密demo:https://github.com/btbxbob/wxpay-refund-notify-decrypt-helper
1)我说的是java下的,不是php的,所以下面在java下讨论问题
2)步骤中的 base64界面和MD5都没什么问题
3)关键是 AES-256-ECB解密(PKCS7Padding)这个东西很复杂,网上说什么TMD美国出口限制,要从oracle官网下载 无限制包,修改jre下的 /jre/lib/security/US_export_policy.jar,local_policy.jar,每个jre版本还下的都不一样。
4)最可恨的是,我都按照上面要求做了,还是不行,出现异常 Exception in thread "main" java.security.NoSuchAlgorithmException: Cannot find any provider supporting AES/ECB/PKCS7Padding
5)所以疯掉,最关键做这个没有意义。。。一个退款通知要单独加密,而其他都不加密,搞不懂为什么啊
一样,也不给个示例代码。太垃圾了
解密方式
解密步骤如下:
(1)对加密串A做base64解码,得到加密串B
(2)对商户key做md5,得到32位小写key* ( key设置路径:微信商户平台(pay.weixin.qq.com)-->账户设置-->API安全-->密钥设置 )
(3)用key*对加密串B做AES-256-ECB解密(PKCS7Padding)
解密demo:https://github.com/btbxbob/wxpay-refund-notify-decrypt-helper
只有php,没有java吗??
您好,现在只有这个,请作为参考,后续有别的语言,会通知到各位的。