System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據加解密,尤其涉及一種基于mybatis對數據加解密的實現方法。
技術介紹
1、隨著信息安全問題日益受到重視,防止數據被盜或者被惡意使用,數據加密在各種應用系統中扮演著越來越重要的角色,特別是對于一些涉及敏感信息的系統,如校園、金融、醫療等領域,對數據加密的需求更為迫切,傳統的數據加密方式通常是在應用程序層面實現,加密解密邏輯通常與業務邏輯混雜在一起,導致代碼可維護性和可擴展性較差;基于數據庫視圖或函數的實現方式,可能不支持模糊查詢等特殊場景;不同的業務模塊或應用系統需要重復實現類似的加密解密邏輯,增加了開發和維護成本,在spring?boot工程基于mybatis?框架實現數據的增刪改查是較為普通的一種做法,但是基于mybatis框架集成數據的加密解密,目前并沒有較為通用或者靈活的方式,為此我們提出了一種基于mybatis對數據加解密的實現方法。
技術實現思路
1、基于
技術介紹
存在的技術問題,本專利技術提出了一種基于mybatis對數據加解密的實現方法。
2、本專利技術提出的一種基于mybatis對數據加解密的實現方法,包括以下步驟:
3、s1:通過注解模塊在實體類entity中添加@fieldencrypt注解,標識哪些字段需要加密入庫,并在查詢類mapper中添加@parammapencrypt注解,在encryptparamnames屬性寫上需要加密之后再查詢的字段,用于數據過濾;
4、s2:通過配置模塊設置配置加載類,啟
5、s3:通過主程序啟動程序,mybatis加密攔截器fieldencryptinterceptor和解密攔截器fielddecryptinterceptor被加載;
6、s4:主程序執行mybatis的insert/update方法,mybatis攔截器模塊通過s3中加載的mybatis加密攔截器fieldencryptinterceptor進行監聽并攔截insert/update方法,同時在intercept方法中,主程序會遍歷掃描該類中所有字段,找到帶有@fieldencrypt注解,需要加密的字段;
7、s5:將s4中需要加密的字段,使用加密解密模塊根據配置的算法和密鑰進行加密;
8、s6:執行sql的insert/update命令,將加密之后的數據安全入庫;
9、s7:同時主程序執行mybatis的query方法,通過s3中加載的mybatis加密攔截器fieldencryptinterceptor監聽并攔截query方法,在intercept方法中,會遍歷掃描所有mapper類,找到該帶有@parammapencrypt的注解方法;
10、s8:將s7中注解需要加密查詢的參數列表encryptparamnames,進行加密處理;
11、s9:執行sql的select命令,根據參數條件過濾數據,獲取結果集,并通過解密攔截器fielddecryptinterceptor攔截并監聽結果集數據,在intercept方法中,會遍歷結果集字段,并通過加密解密模塊將帶有@fieldencrypt注解的字段進行解密操作;
12、s10:將s9中解密之后的數據設置到返回結果數據中。
13、優選地,所述s1中,注解模塊用于標記需要加密解密的字段的自定義注解,@fieldencrypt用于在操作數據的時候,將數據加密或者解密;@parammapencrypt用于數據的查詢,指定參數列表,將參數加密之后再查詢數據,開發人員只需在相應的字段或者方法上使用該注解即可。
14、優選地,所述s4中,mybatis攔截器模塊是與mybatis框架集成的關鍵,自定義實現數據加密解密的interceptor,攔截mybatis的執行流程,在持久化操作,實現自動加密入庫;在普通查詢或者模糊查詢、關聯查詢等特殊查詢場景,mybatis攔截器模塊會對查詢條件進行加密和結果集解密處理,確保查詢結果的正確性和安全性。
15、優選地,所述s5中,加密解密模塊通過策略模式定義抽象接口,可以靈活實現包含多種加密算法,如sm4(國密)、aes、des,或者是自定義加密模塊等,它根據配置模塊提供的配置信息,對標記了@fieldencrypt、@parammapencrypt注解的字段或者方法進行不同加密算法的加密解密操作。
16、優選地,所述s2中,配置模塊提供了靈活配置是否啟動加解密機制、加解密算法、加解密密鑰和mybatis攔截器等機制,配置模塊會解析相關配置,并將信息提供給加密解密模塊,并且啟動mybatis攔截器模塊進行監聽。
17、優選地,所述s1中,注解模塊在進行注解時使用的代碼程序如下:
18、@data
19、@entity
20、@table(name?=?"app_user")
21、@tablename(value?=?"app_user")
22、@noargsconstructor
23、public?class?appuserbean?implements?serializable?{
24、@column(name?=?"password")
25、@fieldencrypt
26、private?string?password;//?登錄密碼
27、@column(name?=?"userid")
28、@fieldencrypt
29、private?string?userid;?//?業務號碼
30、@column(name?=?"name")
31、private?string?name;//?用戶姓名,相當于昵稱
32、@column(name?=?"mobile_userid")
33、@fieldencrypt
34、private?string?mobileuserid;//?手機賬號userid
35、}
36、@mapper
37、public?interface?appuserdao?extends?basemapper<appuserbean>?{
38、//?標記查詢參數需要加密之后查詢
39、@parammapencrypt(encryptparamnames?=?{"userid",?"mobile"})
40、list<appuserbean>?findappuser(map<string,?object&本文檔來自技高網...
【技術保護點】
1.一種基于MyBatis對數據加解密的實現方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于MyBatis對數據加解密的實現方法,其特征在于,所述S1中,注解模塊用于標記需要加密解密的字段的自定義注解,@FieldEncrypt用于在操作數據的時候,將數據加密或者解密;@ParamMapEncrypt用于數據的查詢,指定參數列表,將參數加密之后再查詢數據,開發人員只需在相應的字段或者方法上使用該注解即可。
3.根據權利要求1所述的一種基于MyBatis對數據加解密的實現方法,其特征在于,所述S4中,MyBatis攔截器模塊是與MyBatis框架集成的關鍵,自定義實現數據加密解密的Interceptor,攔截MyBatis的執行流程,在持久化操作,實現自動加密入庫;在普通查詢或者模糊查詢、關聯查詢特殊查詢場景,MyBatis攔截器模塊會對查詢條件進行加密和結果集解密處理,確保查詢結果的正確性和安全性。
4.根據權利要求1所述的一種基于MyBatis對數據加解密的實現方法,其特征在于,所述S5中,加密解密模塊通過策略模式定義抽象接
5.根據權利要求1所述的一種基于MyBatis對數據加解密的實現方法,其特征在于,所述S2中,配置模塊提供了靈活配置是否啟動加解密機制、加解密算法、加解密密鑰和MyBatis攔截器機制,配置模塊會解析相關配置,并將信息提供給加密解密模塊,并且啟動MyBatis攔截器模塊進行監聽。
...【技術特征摘要】
1.一種基于mybatis對數據加解密的實現方法,其特征在于,包括以下步驟:
2.根據權利要求1所述的一種基于mybatis對數據加解密的實現方法,其特征在于,所述s1中,注解模塊用于標記需要加密解密的字段的自定義注解,@fieldencrypt用于在操作數據的時候,將數據加密或者解密;@parammapencrypt用于數據的查詢,指定參數列表,將參數加密之后再查詢數據,開發人員只需在相應的字段或者方法上使用該注解即可。
3.根據權利要求1所述的一種基于mybatis對數據加解密的實現方法,其特征在于,所述s4中,mybatis攔截器模塊是與mybatis框架集成的關鍵,自定義實現數據加密解密的interceptor,攔截mybatis的執行流程,在持久化操作,實現自動加密入庫;在普通查詢或者模糊查詢...
【專利技術屬性】
技術研發人員:彭志茂,肖翔,張大為,
申請(專利權)人:珠海邁科智能科技股份有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。