优化
diff --git a/payapi-common/build.gradle b/payapi-common/build.gradle
index d0cdb6d..a1776a5 100644
--- a/payapi-common/build.gradle
+++ b/payapi-common/build.gradle
@@ -36,6 +36,7 @@
implementation 'javax.validation:validation-api:2.0.1.Final'
implementation 'javax.servlet:javax.servlet-api:4.0.1'
implementation 'commons-beanutils:commons-beanutils:1.9.3'
+ implementation 'commons-codec:commons-codec:1.13'
implementation('org.springframework.boot:spring-boot-starter-validation:2.1.6.RELEASE')
implementation 'org.hibernate:hibernate-validator:6.0.2.Final'
diff --git a/payapi-common/src/main/java/com/supwisdom/dlpay/api/util/HMACUtil.java b/payapi-common/src/main/java/com/supwisdom/dlpay/api/util/HMACUtil.java
index f268646..06d7277 100644
--- a/payapi-common/src/main/java/com/supwisdom/dlpay/api/util/HMACUtil.java
+++ b/payapi-common/src/main/java/com/supwisdom/dlpay/api/util/HMACUtil.java
@@ -1,29 +1,17 @@
package com.supwisdom.dlpay.api.util;
-import javax.crypto.Mac;
-import javax.crypto.spec.SecretKeySpec;
+import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.codec.digest.HmacAlgorithms;
+import org.apache.commons.codec.digest.HmacUtils;
public class HMACUtil {
public static String sha256HMAC(String message, String secret) {
- String hash = "";
- try {
- Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
- SecretKeySpec secret_key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
- sha256_HMAC.init(secret_key);
- byte[] bytes = sha256_HMAC.doFinal(message.getBytes());
- hash = byteArrayToHexString(bytes);
- System.out.println(hash);
- } catch (Exception e) {
- System.out.println("Error HmacSHA256 ===========" + e.getMessage());
- }
- return hash;
+ byte[] bytes = HmacUtils.getInitializedMac(HmacAlgorithms.HMAC_SHA_256, secret.getBytes())
+ .doFinal(message.getBytes());
+ return Hex.encodeHexString(bytes, true);
}
private static String byteArrayToHexString(byte[] bytes) {
- StringBuilder builder = new StringBuilder();
- for (byte b : bytes) {
- builder.append(String.format("%02x", ((int) b) & 0xFF));
- }
- return builder.toString();
+ return Hex.encodeHexString(bytes, true);
}
}
diff --git a/payapi/build.gradle b/payapi/build.gradle
index f87ce15..ed8ce9b 100644
--- a/payapi/build.gradle
+++ b/payapi/build.gradle
@@ -85,8 +85,9 @@
implementation group: 'com.sun.jersey', name: 'jersey-client', version: '1.19'
implementation group: 'javax.servlet', name: 'jstl', version: '1.2'
implementation group: 'taglibs', name: 'standard', version: '1.1.2'
- implementation group: 'commons-codec', name: 'commons-codec', version: '1.6'
+ implementation group: 'commons-codec', name: 'commons-codec', version: '1.13'
implementation files('libs/sms.jar')
+// implementation files('libs/ojdbc6.jar')
implementation 'commons-dbcp:commons-dbcp:1.4'
implementation project(':payapi-common')