From c64e1248bfda3ac8c5120e529fd096dfc4846629 Mon Sep 17 00:00:00 2001
From: chenjiahe <763432473@qq.com>
Date: 星期四, 13 一月 2022 15:20:24 +0800
Subject: [PATCH] AES加密插件

---
 src/main/java/com/hx/mybatis/aes/handler/GenericStringHandler.java |   24 ++++++++++++++++++++----
 1 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/hx/mybatis/handler/aes/GenericStringHandler.java b/src/main/java/com/hx/mybatis/aes/handler/GenericStringHandler.java
similarity index 67%
rename from src/main/java/com/hx/mybatis/handler/aes/GenericStringHandler.java
rename to src/main/java/com/hx/mybatis/aes/handler/GenericStringHandler.java
index 39e3fc0..b31fbf1 100644
--- a/src/main/java/com/hx/mybatis/handler/aes/GenericStringHandler.java
+++ b/src/main/java/com/hx/mybatis/aes/handler/GenericStringHandler.java
@@ -1,6 +1,6 @@
-package com.hx.mybatis.handler.aes;
+package com.hx.mybatis.aes.handler;
 
-import com.hx.springbean.VariableAesKey;
+import com.hx.mybatis.aes.springbean.VariableAesKey;
 import com.hx.util.mysql.aes.MysqlHexAes;
 import org.apache.ibatis.type.BaseTypeHandler;
 import org.apache.ibatis.type.JdbcType;
@@ -44,12 +44,28 @@
 
     @Override
     public String getNullableResult(ResultSet rs, int columnIndex) throws SQLException {
-        return rs.getString(columnIndex);
+        String data = rs.getString(columnIndex);
+        if(data != null && data.length()%32==0 && MysqlHexAes.isHexStrValid(data)){
+            try{
+                data = MysqlHexAes.decryptData(data, VariableAesKey.getAesKey(null),null);
+            }catch (Exception e){
+                //e.printStackTrace();
+            }
+        }
+        return data;
     }
 
     @Override
     public String getNullableResult(CallableStatement cs, int columnIndex) throws SQLException {
-        return cs.getString(columnIndex);
+        String data = cs.getString(columnIndex);
+        if(data != null && data.length() < 129 && data.length()%32==0 && MysqlHexAes.isHexStrValid(data)){
+            try{
+                data = MysqlHexAes.decryptData(data, VariableAesKey.getAesKey(null),null);
+            }catch (Exception e){
+                //e.printStackTrace();
+            }
+        }
+        return data;
     }
 
 }

--
Gitblit v1.8.0