“xubinhui 2 年 前
コミット
e8d64e5657

+ 23 - 23
src/main/java/cn/licoy/encryptbody/advice/DecryptRequestBodyAdvice.java

@@ -68,11 +68,11 @@ public class DecryptRequestBodyAdvice implements RequestBodyAdvice {
             }
         }
         if (Arrays.stream(ReflectUtil.getSuperclasses(methodParameter.getDeclaringClass()))
-                  .flatMap(clazz -> Arrays.stream(clazz.getAnnotations()))
-                  .anyMatch(annotation -> annotation instanceof DecryptBody ||
-                          annotation instanceof AESDecryptBody ||
-                          annotation instanceof DESDecryptBody ||
-                          annotation instanceof RSADecryptBody)) {
+                .flatMap(clazz -> Arrays.stream(clazz.getAnnotations()))
+                .anyMatch(annotation -> annotation instanceof DecryptBody ||
+                        annotation instanceof AESDecryptBody ||
+                        annotation instanceof DESDecryptBody ||
+                        annotation instanceof RSADecryptBody)) {
             return true;
         }
         return methodParameter.getMethod() != null &&
@@ -148,21 +148,21 @@ public class DecryptRequestBodyAdvice implements RequestBodyAdvice {
         if (methodParameter.getMethod().isAnnotationPresent(DecryptBody.class)) {
             DecryptBody decryptBody = methodParameter.getMethodAnnotation(DecryptBody.class);
             return DecryptAnnotationInfoBean.builder()
-                                            .decryptBodyMethod(decryptBody.value())
-                                            .key(decryptBody.otherKey())
-                                            .build();
+                    .decryptBodyMethod(decryptBody.value())
+                    .key(decryptBody.otherKey())
+                    .build();
         }
         if (methodParameter.getMethod().isAnnotationPresent(DESDecryptBody.class)) {
             return DecryptAnnotationInfoBean.builder()
-                                            .decryptBodyMethod(DecryptBodyMethod.DES)
-                                            .key(methodParameter.getMethodAnnotation(DESDecryptBody.class).otherKey())
-                                            .build();
+                    .decryptBodyMethod(DecryptBodyMethod.DES)
+                    .key(methodParameter.getMethodAnnotation(DESDecryptBody.class).otherKey())
+                    .build();
         }
         if (methodParameter.getMethod().isAnnotationPresent(AESDecryptBody.class)) {
             return DecryptAnnotationInfoBean.builder()
-                                            .decryptBodyMethod(DecryptBodyMethod.AES)
-                                            .key(methodParameter.getMethodAnnotation(AESDecryptBody.class).otherKey())
-                                            .build();
+                    .decryptBodyMethod(DecryptBodyMethod.AES)
+                    .key(methodParameter.getMethodAnnotation(AESDecryptBody.class).otherKey())
+                    .build();
         }
         return null;
     }
@@ -180,21 +180,21 @@ public class DecryptRequestBodyAdvice implements RequestBodyAdvice {
             if (annotation instanceof DecryptBody) {
                 DecryptBody decryptBody = (DecryptBody) annotation;
                 return DecryptAnnotationInfoBean.builder()
-                                                .decryptBodyMethod(decryptBody.value())
-                                                .key(decryptBody.otherKey())
-                                                .build();
+                        .decryptBodyMethod(decryptBody.value())
+                        .key(decryptBody.otherKey())
+                        .build();
             }
             if (annotation instanceof DESDecryptBody) {
                 return DecryptAnnotationInfoBean.builder()
-                                                .decryptBodyMethod(DecryptBodyMethod.DES)
-                                                .key(((DESDecryptBody) annotation).otherKey())
-                                                .build();
+                        .decryptBodyMethod(DecryptBodyMethod.DES)
+                        .key(((DESDecryptBody) annotation).otherKey())
+                        .build();
             }
             if (annotation instanceof AESDecryptBody) {
                 return DecryptAnnotationInfoBean.builder()
-                                                .decryptBodyMethod(DecryptBodyMethod.AES)
-                                                .key(((AESDecryptBody) annotation).otherKey())
-                                                .build();
+                        .decryptBodyMethod(DecryptBodyMethod.AES)
+                        .key(((AESDecryptBody) annotation).otherKey())
+                        .build();
             }
         }
         return null;

+ 37 - 37
src/main/java/cn/licoy/encryptbody/advice/EncryptResponseBodyAdvice.java

@@ -77,13 +77,13 @@ public class EncryptResponseBodyAdvice implements ResponseBodyAdvice {
             }
         }
         if (Arrays.stream(ReflectUtil.getSuperclasses(returnType.getDeclaringClass()))
-                  .flatMap(clazz -> Arrays.stream(clazz.getAnnotations()))
-                  .anyMatch(annotation -> annotation instanceof EncryptBody ||
-                          annotation instanceof AESEncryptBody ||
-                          annotation instanceof DESEncryptBody ||
-                          annotation instanceof RSAEncryptBody ||
-                          annotation instanceof MD5EncryptBody ||
-                          annotation instanceof SHAEncryptBody)) {
+                .flatMap(clazz -> Arrays.stream(clazz.getAnnotations()))
+                .anyMatch(annotation -> annotation instanceof EncryptBody ||
+                        annotation instanceof AESEncryptBody ||
+                        annotation instanceof DESEncryptBody ||
+                        annotation instanceof RSAEncryptBody ||
+                        annotation instanceof MD5EncryptBody ||
+                        annotation instanceof SHAEncryptBody)) {
             return true;
         }
         return returnType.getMethod().isAnnotationPresent(EncryptBody.class) ||
@@ -127,33 +127,33 @@ public class EncryptResponseBodyAdvice implements ResponseBodyAdvice {
         if (methodParameter.getMethod().isAnnotationPresent(EncryptBody.class)) {
             EncryptBody encryptBody = methodParameter.getMethodAnnotation(EncryptBody.class);
             return EncryptAnnotationInfoBean.builder()
-                                            .encryptBodyMethod(encryptBody.value())
-                                            .key(encryptBody.otherKey())
-                                            .shaEncryptType(encryptBody.shaType())
-                                            .build();
+                    .encryptBodyMethod(encryptBody.value())
+                    .key(encryptBody.otherKey())
+                    .shaEncryptType(encryptBody.shaType())
+                    .build();
         }
         if (methodParameter.getMethod().isAnnotationPresent(MD5EncryptBody.class)) {
             return EncryptAnnotationInfoBean.builder()
-                                            .encryptBodyMethod(EncryptBodyMethod.MD5)
-                                            .build();
+                    .encryptBodyMethod(EncryptBodyMethod.MD5)
+                    .build();
         }
         if (methodParameter.getMethod().isAnnotationPresent(SHAEncryptBody.class)) {
             return EncryptAnnotationInfoBean.builder()
-                                            .encryptBodyMethod(EncryptBodyMethod.SHA)
-                                            .shaEncryptType(methodParameter.getMethodAnnotation(SHAEncryptBody.class).value())
-                                            .build();
+                    .encryptBodyMethod(EncryptBodyMethod.SHA)
+                    .shaEncryptType(methodParameter.getMethodAnnotation(SHAEncryptBody.class).value())
+                    .build();
         }
         if (methodParameter.getMethod().isAnnotationPresent(DESEncryptBody.class)) {
             return EncryptAnnotationInfoBean.builder()
-                                            .encryptBodyMethod(EncryptBodyMethod.DES)
-                                            .key(methodParameter.getMethodAnnotation(DESEncryptBody.class).otherKey())
-                                            .build();
+                    .encryptBodyMethod(EncryptBodyMethod.DES)
+                    .key(methodParameter.getMethodAnnotation(DESEncryptBody.class).otherKey())
+                    .build();
         }
         if (methodParameter.getMethod().isAnnotationPresent(AESEncryptBody.class)) {
             return EncryptAnnotationInfoBean.builder()
-                                            .encryptBodyMethod(EncryptBodyMethod.AES)
-                                            .key(methodParameter.getMethodAnnotation(AESEncryptBody.class).otherKey())
-                                            .build();
+                    .encryptBodyMethod(EncryptBodyMethod.AES)
+                    .key(methodParameter.getMethodAnnotation(AESEncryptBody.class).otherKey())
+                    .build();
         }
         return null;
     }
@@ -171,33 +171,33 @@ public class EncryptResponseBodyAdvice implements ResponseBodyAdvice {
             if (annotation instanceof EncryptBody) {
                 EncryptBody encryptBody = (EncryptBody) annotation;
                 return EncryptAnnotationInfoBean.builder()
-                                                .encryptBodyMethod(encryptBody.value())
-                                                .key(encryptBody.otherKey())
-                                                .shaEncryptType(encryptBody.shaType())
-                                                .build();
+                        .encryptBodyMethod(encryptBody.value())
+                        .key(encryptBody.otherKey())
+                        .shaEncryptType(encryptBody.shaType())
+                        .build();
             }
             if (annotation instanceof MD5EncryptBody) {
                 return EncryptAnnotationInfoBean.builder()
-                                                .encryptBodyMethod(EncryptBodyMethod.MD5)
-                                                .build();
+                        .encryptBodyMethod(EncryptBodyMethod.MD5)
+                        .build();
             }
             if (annotation instanceof SHAEncryptBody) {
                 return EncryptAnnotationInfoBean.builder()
-                                                .encryptBodyMethod(EncryptBodyMethod.SHA)
-                                                .shaEncryptType(((SHAEncryptBody) annotation).value())
-                                                .build();
+                        .encryptBodyMethod(EncryptBodyMethod.SHA)
+                        .shaEncryptType(((SHAEncryptBody) annotation).value())
+                        .build();
             }
             if (annotation instanceof DESEncryptBody) {
                 return EncryptAnnotationInfoBean.builder()
-                                                .encryptBodyMethod(EncryptBodyMethod.DES)
-                                                .key(((DESEncryptBody) annotation).otherKey())
-                                                .build();
+                        .encryptBodyMethod(EncryptBodyMethod.DES)
+                        .key(((DESEncryptBody) annotation).otherKey())
+                        .build();
             }
             if (annotation instanceof AESEncryptBody) {
                 return EncryptAnnotationInfoBean.builder()
-                                                .encryptBodyMethod(EncryptBodyMethod.AES)
-                                                .key(((AESEncryptBody) annotation).otherKey())
-                                                .build();
+                        .encryptBodyMethod(EncryptBodyMethod.AES)
+                        .key(((AESEncryptBody) annotation).otherKey())
+                        .build();
             }
         }
         return null;

+ 11 - 8
src/main/java/cn/licoy/encryptbody/util/AESEncryptUtil.java

@@ -2,6 +2,9 @@ package cn.licoy.encryptbody.util;
 
 import javax.crypto.*;
 import javax.crypto.spec.SecretKeySpec;
+import java.io.UnsupportedEncodingException;
+import java.security.InvalidKeyException;
+import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
 
 /**
@@ -11,36 +14,36 @@ import java.security.SecureRandom;
  * @version 2018/9/5
  */
 public class AESEncryptUtil {
-    private final static String password = "2181E9E80460B852859EE455AC5203D9";
 
     /**
      * AES加密
      *
-     * @param formatStringBody
      * @param content  字符串内容
+     * @param password 密钥
      */
-    public static String encrypt(String formatStringBody, String content) throws Exception {
-        return aes(content, Cipher.ENCRYPT_MODE);
+    public static String encrypt(String content, String password) throws Exception {
+        return aes(content, password, Cipher.ENCRYPT_MODE);
     }
 
 
     /**
      * AES解密
      *
-     * @param value
      * @param content  字符串内容
+     * @param password 密钥
      */
-    public static String decrypt(String value, String content) throws Exception {
-        return aes(content, Cipher.DECRYPT_MODE);
+    public static String decrypt(String content, String password) throws Exception {
+        return aes(content, password, Cipher.DECRYPT_MODE);
     }
 
     /**
      * AES加密/解密 公共方法
      *
      * @param content  字符串
+     * @param password 密钥
      * @param type     加密:{@link Cipher#ENCRYPT_MODE},解密:{@link Cipher#DECRYPT_MODE}
      */
-    private static String aes(String content, int type) throws Exception {
+    private static String aes(String content, String password, int type) throws Exception {
         KeyGenerator generator = KeyGenerator.getInstance("AES");
         SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
         random.setSeed(password.getBytes());

+ 0 - 12
src/main/java/com/izouma/jmrh/config/DecryptFilter.java

@@ -12,7 +12,6 @@ import org.springframework.stereotype.Component;
 import javax.servlet.*;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletRequestWrapper;
-import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.util.Map;
 
@@ -40,17 +39,6 @@ public class DecryptFilter implements Filter {
         }
     }
 
-//    @Override
-//    public void doFilter(HttpServletRequest servletRequest, HttpServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
-//        String contentType = ((HttpServletRequest) servletRequest).getHeader("content-type");
-//        String encrypted = ((HttpServletRequest) servletRequest).getHeader("content-encrypted");
-//        if ("true".equals(encrypted) && !"application/json".equals(contentType)) {
-//            filterChain.doFilter(new EncryptedRequest(servletRequest, config), servletResponse);
-//        } else {
-//            filterChain.doFilter(servletRequest, servletResponse);
-//        }
-//    }
-
     @Override
     public void destroy() {
         Filter.super.destroy();

+ 0 - 24
src/test/java/com/izouma/jmrh/GenCodeTest.java

@@ -15,7 +15,6 @@ import org.springframework.test.context.junit4.SpringRunner;
 import org.springframework.util.ResourceUtils;
 
 import java.io.*;
-import java.nio.charset.StandardCharsets;
 import java.nio.file.Paths;
 import java.util.*;
 
@@ -118,27 +117,4 @@ public class GenCodeTest {
         temp.process(data, out);
 
     }
-
-
-
-    @Test
-    public void HexStringToJSONtes() {
-
-            String hexString = "8b7cdf172c824312c5af35bf5067ed7f9285e128a0d1a4885b247c160b62a0210d9007c346ce0d8a984d3c94aea7e9f44aec66a269c022bb661e96170961f3bc1b974746da46ac62c967c8048919f16be83766761c54f37a4290f05adcd52f003390b0f31157152a05c7145dcc6ff7e3ca8267c2162430db605956001884c9525fb4f6df6fbeb419937735937a78738ce80b3fd329e372adf8fe6c88e0cd4abdf1de8c4e0641fd5a4f02ea624669f4fe156b1f40c9efdf21ac9185c6a0b39ac5f052bcc0bd45e95d538b1d6f451ce9a0af948d7c6c1bdfc3b2b7f1093f342106e30d02f8ec53d36b39357d3cb9ef4035";
-
-
-        int len = hexString.length();
-        byte[] data = new byte[len / 2];
-        for (int i = 0; i < len; i += 2) {
-            data[i / 2] = (byte) ((Character.digit(hexString.charAt(i), 16) << 4)
-                    + Character.digit(hexString.charAt(i+1), 16));
-        }
-           // byte[] bytes = hexStringToByteArray(hexString);
-            String jsonString = new String(data, StandardCharsets.UTF_8);
-
-            System.out.println(jsonString);
-
-
-
-    }
 }