From 30cae3cbdea7dfb4d04b564ffd32dca8d70e94f3 Mon Sep 17 00:00:00 2001 From: 13693261870 <252740454@qq.com> Date: 星期一, 11 十一月 2024 16:39:37 +0800 Subject: [PATCH] 11 --- src/main/java/com/se/simu/helper/RsaHelper.java | 13 +++++++++++++ src/main/java/com/se/simu/service/GedbService.java | 2 +- src/main/java/com/se/simu/service/DbService.java | 7 +++---- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/se/simu/helper/RsaHelper.java b/src/main/java/com/se/simu/helper/RsaHelper.java index c7a70eb..88beabe 100644 --- a/src/main/java/com/se/simu/helper/RsaHelper.java +++ b/src/main/java/com/se/simu/helper/RsaHelper.java @@ -137,4 +137,17 @@ return outStr; } + + public static String encrypt(String key, String str) throws Exception { + byte[] decoded = Base64.decodeBase64(key); + + RSAPublicKey pubKey = (RSAPublicKey) KeyFactory.getInstance("RSA").generatePublic(new X509EncodedKeySpec(decoded)); + + Cipher cipher = Cipher.getInstance("RSA"); + cipher.init(Cipher.ENCRYPT_MODE, pubKey); + + String outStr = Base64.encodeBase64String(cipher.doFinal(str.getBytes(StandardCharsets.UTF_8))); + + return outStr; + } } diff --git a/src/main/java/com/se/simu/service/DbService.java b/src/main/java/com/se/simu/service/DbService.java index 15305bb..4d60f5c 100644 --- a/src/main/java/com/se/simu/service/DbService.java +++ b/src/main/java/com/se/simu/service/DbService.java @@ -57,7 +57,7 @@ private String getPublicKey() { Object obj = CaffeineHelper.get(PUBLIC_KEY); - if (obj instanceof GeDb) { + if (obj instanceof String) { return (String) obj; } @@ -86,9 +86,8 @@ map.put("count", vo.getCount()); map.put("start", vo.getStart()); map.put("querytype", vo.getQuerytype()); - if (StringHelper.isEmpty(vo.getWhere())) { - RsaHelper.setPublicKey(getPublicKey()); - String where = RsaHelper.encrypt(vo.getWhere()); + if (!StringHelper.isEmpty(vo.getWhere())) { + String where = RsaHelper.encrypt(getPublicKey(), vo.getWhere()); map.put("where", vo.getWhere()); } if (!StringHelper.isEmpty(vo.getGeometry())) { diff --git a/src/main/java/com/se/simu/service/GedbService.java b/src/main/java/com/se/simu/service/GedbService.java index 7124a1a..fa83539 100644 --- a/src/main/java/com/se/simu/service/GedbService.java +++ b/src/main/java/com/se/simu/service/GedbService.java @@ -109,7 +109,7 @@ return password; } - private String getPublicKey() { + public String getPublicKey() { //{"datetime":"2024-09-12 17:24:38","code":200,"data":"MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtFwJCh2taVTEi05C8qT2oG7Y+rDmJhlO4zicpSeRtiro9LsytePeWI7BXM6sfDU0WeKun1izawcfgGkZgnoJuMBluAOKI1tL0uCrR+DreNLqMVtnXHwoWEIk/hGJedDWaf3q22aGDyEB5h9qCq0JklSShP1Ih4ppap4LmgxdTPQIDAQAB"} JSONObject obj = restTemplate.getForObject(config.getHost() + "account-service/security/publickey", JSONObject.class); -- Gitblit v1.9.3