From beeccb86ef677f520195a2a90144bd537b683914 Mon Sep 17 00:00:00 2001 From: 632d6423b4d9145d677b07db <632d6423b4d9145d677b07db@devide> Date: Fri, 21 Apr 2023 11:43:23 +0000 Subject: [PATCH] Auto commit --- .../lhstack/controller/CryptoController.java | 26 ++++++++++++------ src/main/java/com/lhstack/utils/Aes.java | 5 ++-- src/main/resources/application.yml | 2 ++ target/classes/application.yml | 2 ++ .../lhstack/controller/CryptoController.class | Bin 3430 -> 5208 bytes target/classes/com/lhstack/utils/Aes.class | Bin 2171 -> 1955 bytes 6 files changed, 24 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/lhstack/controller/CryptoController.java b/src/main/java/com/lhstack/controller/CryptoController.java index 1cfbb56..9ebe0d8 100644 --- a/src/main/java/com/lhstack/controller/CryptoController.java +++ b/src/main/java/com/lhstack/controller/CryptoController.java @@ -1,8 +1,12 @@ package com.lhstack.controller; +import java.nio.charset.StandardCharsets; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; +import org.bouncycastle.util.encoders.Base64; +import org.bouncycastle.util.encoders.Hex; import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; @@ -13,6 +17,7 @@ import org.springframework.web.bind.annotation.RestController; import com.lhstack.utils.Aes; import io.reactivex.Single; +import io.reactivex.exceptions.CompositeException; @RestController @RequestMapping("crypto") @@ -26,14 +31,19 @@ public class CryptoController { @PostMapping("decrypt") public Single decrypt(@RequestBody Map body){ - return Single.defer(() -> { - String aesKey = body.getOrDefault("key", defaultAesKey); - String aesIv = body.getOrDefault("iv", defaultAesIv); - byte[] content = body.getOrDefault("content","").getBytes(); - return Single.fromCallable(() -> { - Optional resulOptional = Aes.decrypt(aesKey, aesIv, content); - return "hello world"; - }); + String aesKey = body.getOrDefault("key", defaultAesKey); + String aesIv = body.getOrDefault("iv", defaultAesIv); + byte[] content = body.getOrDefault("content","").getBytes(); + return Single + .fromCallable(() -> Aes.decrypt(aesKey, aesIv, Base64.decode(content))) + .onErrorResumeNext(e ->Single.just(Aes.decrypt(aesKey, aesIv, Hex.decode(content)))) + .map(bytes -> new String(bytes,StandardCharsets.UTF_8)) + .onErrorReturn(e -> { + if(e instanceof CompositeException){ + CompositeException compositeException = (CompositeException)e; + return compositeException.getExceptions().stream().map(item -> String.format("%s=%s",item.getClass().getSimpleName(),item.getMessage())).collect(Collectors.joining(",")); + } + return e.getMessage(); }); } diff --git a/src/main/java/com/lhstack/utils/Aes.java b/src/main/java/com/lhstack/utils/Aes.java index 2a15427..931c35a 100644 --- a/src/main/java/com/lhstack/utils/Aes.java +++ b/src/main/java/com/lhstack/utils/Aes.java @@ -24,7 +24,7 @@ public class Aes { } } - public static Optional decrypt(String key,String iv,byte[] encryptBytes){ + public static byte[] decrypt(String key,String iv,byte[] encryptBytes){ try{ Cipher cipher = StringUtils.hasText(iv) ? Cipher.getInstance(CBC) : Cipher.getInstance(ECB); if(StringUtils.hasText(iv)){ @@ -32,8 +32,7 @@ public class Aes { }else { cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key.getBytes(), "AES")); } - byte[] bytes = cipher.doFinal(encryptBytes); - return Optional.of(bytes); + return cipher.doFinal(encryptBytes); }catch(Exception e){ throw new RuntimeException(e); } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e69de29..9e5e1a6 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -0,0 +1,2 @@ +aes: + key: axiwlazlf1456175 \ No newline at end of file diff --git a/target/classes/application.yml b/target/classes/application.yml index e69de29..9e5e1a6 100644 --- a/target/classes/application.yml +++ b/target/classes/application.yml @@ -0,0 +1,2 @@ +aes: + key: axiwlazlf1456175 \ No newline at end of file diff --git a/target/classes/com/lhstack/controller/CryptoController.class b/target/classes/com/lhstack/controller/CryptoController.class index 67a585432b330ec90814d3b65b2c6683c107344d..be5059801947bf6b3968159336a48454e8a7fa29 100644 GIT binary patch literal 5208 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 delta 762 zcmZvZO-~b16o#KWGwqa8ZLKy@0t%sE3u661E3_7=fTCCw1gS-_Kqfj_}y zR;*pH)tHn<5?yQJk1%oN&b3B7Eio}lGIQ=d?|JWgzFxV1c$}Ypy?YOIv--yQTvJi& zyLQmp(0r{UOX(-+&{`>%4~;IDa>YVAA5qke=dy)#X>BE=xb%nHyazX$ipL^OPIK1e zj8)NsdN=2+ubST;rpM%hwO>E1_Y$#!dQ@Gs7IeS8kA71`U+TU6%S522{Y>ACbz5(BjE@$ zUUhC;FO0_ZFq1CsFr_f(i$ghSO<}LTO2wVrW!faA@cusl7x%cY(25I+Kw!7)e7cYg zjm|D*=1P&^9)pOOJWw>$#A@8JHS43{am+AVt#{7)Vl=6YwPQ@R*=BdURWe-PU+RNT z=Q6bwh*s`x$>ve(Iwxgo8X?@EJlL^`pXsb{YJ+;Oqr&-39Nv046T4t*mu;J9vZGAQ zJFvyjHp9tIakjW#Cb5a{pLm(Et`lV@dW|DSh2-nRHZ#etEz%!QtRrJeF^^8GgE%2X=6woAlMbBFdD?mW8)Zmo!KMSd?G!Sggj%Z$e+B A