From 7dc81e6873651550cc49c0e32db59b40fa562933 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com> Date: Tue, 14 May 2024 09:12:10 +0800 Subject: [PATCH] 'commit' --- src/main/java/UnitTest/KeyValidator.java | 53 +++++++++++++++++++ .../Zbdc/Controller/ZbdcController.java | 5 -- 2 files changed, 53 insertions(+), 5 deletions(-) create mode 100644 src/main/java/UnitTest/KeyValidator.java diff --git a/src/main/java/UnitTest/KeyValidator.java b/src/main/java/UnitTest/KeyValidator.java new file mode 100644 index 00000000..d296e2c9 --- /dev/null +++ b/src/main/java/UnitTest/KeyValidator.java @@ -0,0 +1,53 @@ +package UnitTest; + +import java.util.Base64; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.concurrent.TimeUnit; + +public class KeyValidator { + + public static boolean validateKey(String key, String sharedSecret) { + try { + String[] parts = key.split(":"); + if (parts.length != 3) { + return false; // Invalid key format + } + + String secret = parts[0]; + String timestampStr = parts[1]; + String expirationStr = parts[2]; + + long timestamp = Long.parseLong(timestampStr); + long expiration = Long.parseLong(expirationStr); + + // Check if the key has expired + if (System.currentTimeMillis() > expiration * 1000) { + return false; // Key has expired + } + + // Recreate the key for verification + String keyData = String.join(":", secret, timestampStr, expirationStr); + String generatedKey = generateKey(sharedSecret, keyData); + + return key.equals(generatedKey); // Validate the key + } catch (Exception e) { + return false; // Error in processing, consider the key invalid + } + } + + private static String generateKey(String secret, String keyData) throws NoSuchAlgorithmException { + MessageDigest md = MessageDigest.getInstance("SHA-256"); + md.update((keyData + secret).getBytes()); + byte[] digest = md.digest(); + return Base64.getUrlEncoder().encodeToString(digest); + } + + public static void main(String[] args) throws Exception { + String sharedSecret = "DsideaL4r5t6y7u@123"; // This should match the one used in Python + String key = "0ede740c2c81ea362dcdeee568716eb06706d96dda55be6109bb8cf2c83344c1"; // Example key to validate + + boolean isValid = validateKey(key, sharedSecret); + System.out.println("Is the key valid? " + isValid); + } +} \ No newline at end of file diff --git a/src/main/java/com/dsideal/QingLong/Zbdc/Controller/ZbdcController.java b/src/main/java/com/dsideal/QingLong/Zbdc/Controller/ZbdcController.java index 9e0d58ad..469174d0 100644 --- a/src/main/java/com/dsideal/QingLong/Zbdc/Controller/ZbdcController.java +++ b/src/main/java/com/dsideal/QingLong/Zbdc/Controller/ZbdcController.java @@ -545,11 +545,6 @@ public class ZbdcController extends Controller { // http://10.10.21.20:9000/QingLong/zbdc/getQueryXxhsb?area_id=2C0CE452-B43C-478E-8D51-F4470A36F739&school_type_id=211&dcb_id=1&year=0&keyword=&page=1&limit=10 public void getQueryXxhsb(String school_id, int type_id, String area_id, int school_type_id, String keyword, int year, int dcb_id, int page, int limit) { if (year == 0) year = DateTime.now().year();//如果没有传入获取的年份,那么就是系统的默认当前年份 - if (StrKit.isBlank(school_id) && type_id == 0) { //学校查询自己 - school_id = SessionKit.get(getRequest(), getResponse(), "bureau_id"); - } - if (StrKit.isBlank(school_id) && type_id == 1) {// 查询所有学校 - } Page list = zm.getQueryXxhsb(school_id, area_id, school_type_id, year, keyword, dcb_id, page, limit); renderJson(CommonUtil.renderJsonForLayUI(list)); }