From 266aca27343453469209ea869111d2371eff84b3 Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Sat, 4 Aug 2018 19:54:57 +0800 Subject: [PATCH] =?UTF-8?q?#692=20=E4=BF=AE=E5=A4=8D=E9=80=80=E6=AC=BE?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E8=A7=A3=E5=AF=86=E4=BF=A1=E6=81=AF=E6=97=B6?= =?UTF-8?q?=E6=8A=A5Invalid=20AES=20key=20length:=2031=20bytes=E5=BC=82?= =?UTF-8?q?=E5=B8=B8=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wxpay/bean/notify/WxPayRefundNotifyResult.java | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayRefundNotifyResult.java b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayRefundNotifyResult.java index 94e8492b..dc929030 100644 --- a/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayRefundNotifyResult.java +++ b/weixin-java-pay/src/main/java/com/github/binarywang/wxpay/bean/notify/WxPayRefundNotifyResult.java @@ -11,6 +11,7 @@ import lombok.NoArgsConstructor; import me.chanjar.weixin.common.util.ToStringUtils; import me.chanjar.weixin.common.util.xml.XStreamInitializer; import org.apache.commons.codec.binary.Base64; +import org.apache.commons.codec.digest.DigestUtils; import javax.crypto.Cipher; import javax.crypto.spec.SecretKeySpec; @@ -44,12 +45,10 @@ public class WxPayRefundNotifyResult extends BaseWxPayResult implements Serializ WxPayRefundNotifyResult result = BaseWxPayResult.fromXML(xmlString, WxPayRefundNotifyResult.class); String reqInfoString = result.getReqInfoString(); try { - Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); - - final MessageDigest md5 = MessageDigest.getInstance("MD5"); - md5.update(mchKey.getBytes()); - final String keyMd5String = new BigInteger(1, md5.digest()).toString(16).toLowerCase(); + final String keyMd5String = DigestUtils.md5Hex(mchKey).toLowerCase(); SecretKeySpec key = new SecretKeySpec(keyMd5String.getBytes(), "AES"); + + Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, key); result.setReqInfo(ReqInfo.fromXML(new String(cipher.doFinal(Base64.decodeBase64(reqInfoString))))); } catch (Exception e) {