From 1402f553c8826b8d3a5fb7c4cd166e4b2366beab Mon Sep 17 00:00:00 2001 From: zhangqinbin <181961702@qq.com> Date: Tue, 24 Oct 2023 17:07:10 +0800 Subject: [PATCH] =?UTF-8?q?=E9=87=91=E5=B1=B1WPS=E5=9C=A8=E7=BA=BF?= =?UTF-8?q?=E7=BC=96=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wps/service/impl/WpsServiceImpl.java | 48 ++++++++++--------- .../ebtp/extend/wps/util/MdConstants.java | 2 +- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java index e0d5776..326db93 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/service/impl/WpsServiceImpl.java @@ -530,32 +530,30 @@ public class WpsServiceImpl implements WpsService { String mdKey = MdConstants.getSha256(time+fileId+appName+token); log.info("mdKey:"+mdKey); //fileId|token|yyyyMMddHHmmss|md5加密 - String rsaKey = fileId+"|"+token+"|"+time; + String rsaKey = fileId+"_"+token+"_"+time+"_"+mdKey; log.info("rsaKey:"+rsaKey); //RSA加密 - String key = RSA.encrypt(rsaKey,kswpublicKey); + String key = RSA.encrypt(rsaKey.substring(0,117),kswpublicKey); log.info("key:"+key); - return key+"|"+mdKey; + return key; } + private String downloadDecrypt(String key){ - CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",key.indexOf("|")<0); + String val = RSA.decrypt(key,kswprivateKey); + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",val.indexOf("_")<0); - String[] k = key.split("|"); - String md = k[1]; - String val = RSA.decrypt(k[0],kswprivateKey); - CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",val.indexOf("|")<0); - - String[] value = val.split("|"); + String[] value = val.split("_"); String fileId = value[0]; String token = value[1]; String time = value[2]; + String md = value[3]; String o_key = MdConstants.getSha256(time+fileId+appName+token);// - CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",!o_key.equals(md)); + CommonExceptionEnum.FRAME_EXCEPTION_COMMON_DATA_OTHER_ERROR.customValidName("令牌无效",!o_key.substring(0,md.length()).equals(md)); SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss"); long newDateLong = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli(); @@ -637,16 +635,22 @@ public class WpsServiceImpl implements WpsService { return map; } - public static void main(String args[]){ - String s = "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"; - byte[] decodedBytes = Base64.getDecoder().decode(s); - File file = new File("d://upload/xx.doc"); - try{ - FileOutputStream fos = new FileOutputStream(file); - fos.write(decodedBytes); // 写入解码后的字节数组到文件 - fos.flush(); // 刷新缓冲区 - }catch (Exception e){ - e.printStackTrace(); - } + public static void main(String args[]) { + WpsServiceImpl wpsService = new WpsServiceImpl(); + wpsService.kswpublicKey = "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtUm+H78uT39TOsgS5XdbIuC0BRLiktqbuI3F9VFbPWDcX15Ptb2u2yTCSOB0Gl+yI+hqpClyV9nyjnu0LgoWpsIDZSLVLdrltYKz9N8jwXKhybomT2EuYU7hzWT1Ea4fkIBfYMCl+BQYSkXD6eqObg4mq2/wUFUVX/+/vjsMShwIDAQAB"; + wpsService.kswprivateKey = "MIICdQIBADANBgkqhkiG9w0BAQEFAASCAl8wggJbAgEAAoGBAK1Sb4fvy5Pf1M6yBLld1si4LQFEuKS2pu4jcX1UVs9YNxfXk+1va7bJMJI4HQaX7Ij6GqkKXJX2fKOe7QuChamwgNlItUt2uW1grP03yPBcqHJuiZPYS5hTuHNZPURrh+QgF9gwKX4FBhKRcPp6o5uDiarb/BQVRVf/7++OwxKHAgMBAAECgYA77iY8hdEJx7qo4es6QVVUQELnjmCeK74a18yVPoVp2qHqL5Op5P4EzRprZNW8gum6D2kKjFepTvqYBQsIENCwY3a6iKQf+8kwJ/GhVP+7uT3bnxdQFNXA99ujVu7Q2nFQZYAYJWiuMOQKGWrVJperlli0Ip3htCNmtTaviVfAcQJBANTAbX210K1zWe40nSxuuc6ONBqK/YF5hkqKpWB/XzfgFgQ4tPOfvWnnp0pt9rWUV9PzO6NYr2ya60yu2Y6aE+kCQQDQjhfdIid458UOYbjAixY5ONZOcswFQi77pk6MB5Cp8aHn8gHtapDnXt5DiHhqzJCya31FYYoqGtp/4fIntRzvAkA1N2Dr5fOpv0XKcLyz5YpyoV1lGkko/sXZlW6igZnGtzWqnqicm+NcP0a4NmNUriN978SGKmPO7b1XtBDVO7MpAkA/Q1sp0Tp4CpZUDoCkp4xOP1eC5H/O+IyX+ZLKF2Fiq9GZMmgzRKhABx8VDUi53OPnu4N8kGIA87RkJn32XZIxAkAtL+skd+5wkL71VZVnZafLIjWlJM/RKxqyaLbF8irT2sq2+ae8A19hfXj3zT7CeLn5xjKP1/cuGakeOBL8cNaw"; + wpsService.appName = "biz-service-ebtp-extend"; + String key = wpsService.getDownloadEncrypt("1679764839191080961","3a1f5aae-3cd2-4599-87b0-712e40625c7c"); + String val = RSA.decrypt(key,wpsService.kswprivateKey); + System.out.println("val:"+val); + String[] value = val.split("_"); + String fileId = value[0]; + String token = value[1]; + String time = value[2]; + String md = value[3]; + System.out.println("md:"+md); + String o_key = MdConstants.getSha256(time+fileId+wpsService.appName+token); + System.out.println("o_key:"+o_key); + System.out.println("o_key:"+o_key.substring(0,md.length())); } } diff --git a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/util/MdConstants.java b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/util/MdConstants.java index 4218e3b..603fbf3 100644 --- a/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/util/MdConstants.java +++ b/src/main/java/com/chinaunicom/mall/ebtp/extend/wps/util/MdConstants.java @@ -21,7 +21,7 @@ public class MdConstants { public static void main(String[] args) { - String originalString = "Hello, World!"; + String originalString = "202310241611381679764839191080961biz-service-ebtp-extend3a1f5aae-3cd2-4599-87b0-712e40625c7c"; System.out.println("Original String: " + originalString); System.out.println("SHA-256 Hash: " + MdConstants.getSha256(originalString)); }