一種無感知存儲敏感信息的方法、系統、設備及存儲介質與流程
2024-04-12 23:47:05
1.本技術涉及計算機軟體技術及資料庫技術領域,尤其涉及一種無感知存儲敏感信息的方法、系統、裝置及存儲介質。
背景技術:
2.現有業務場景經常需要保存用戶填寫的手機、身份證號、銀行卡等敏感信息,通常會在業務代碼中專門編寫加解密方法操作,造成業務代碼與加解密代碼的嚴重耦合,且一旦需要改變加密解密欄位,需要重新上線發布,非常不靈活,且時效慢。
3.即現有技術中,業務代碼與加解密代碼嚴重耦合,一旦需要更改加密解密欄位,便需要重新上線發布,靈活性低,時效性慢。
技術實現要素:
4.為至少在一定程度上克服相關技術中業務代碼與加解密代碼嚴重耦合,一旦需要更改加密解密欄位,便需要重新上線發布,靈活性低,時效性慢的問題,本技術提供一種無感知存儲敏感信息的方法、系統、設備及存儲介質。
5.本技術的方案如下:
6.本技術提供一種無感知存儲敏感信息的方法,所述方法包括:
7.獲取待加密或解密的欄位;
8.利用所述待加密或解密的欄位,進行加解密欄位配置及不同環境密鑰配置;
9.利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,在程序與資料庫間構建攔截器;
10.利用所述攔截器,獲取用戶的操作類型,基於用戶的操作類型進行欄位匹配,若匹配成功,則進行加密存儲或解密查詢的操作,否則,返回操作後的字符串數據。
11.進一步地,所述不同環境密鑰配置,包括:開發環境密鑰配置、測試環境密鑰配置和生產環境密鑰配置。
12.進一步地,所述利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,在程序與資料庫間構建攔截器,包括:
13.利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,新建configencryptplugin類,實現mybatis提供的interceptor接口,覆寫intercept接口方法;
14.配置mybatis的configuration,將所述configencryptplugin類加載到所述加解密欄位配置中,啟動時加載攔截器,並且在加載攔截器的同時預先加載配置的所述加解密欄位到本地緩存。
15.進一步地,所述利用所述攔截器,獲取用戶的操作類型,基於用戶的操作類型進行欄位匹配,若匹配成功,則進行加密存儲或解密查詢的操作,否則,返回操作後的字符串數據,包括:
16.利用所述攔截器,根據攔截的調用參數invocation判斷當前執行的sql執行方式
為查詢或是保存;
17.若檢測到所述執行方式為查詢時,通過查詢資料庫獲取對象數據,所述對象數據的對象欄位與解密欄位進行匹配,若匹配成功,則獲取秘鑰對加密欄位進行解密,通過反射將解密數據賦值到原欄位;
18.否則返回操作失敗後的字符串數據;
19.若檢測到所述執行方式為保存時,所述對象數據的對象欄位與加密欄位進行匹配,若匹配成功,則獲取秘鑰對加密欄位進行加密,通過反射將解密數據賦值到原欄位,然後將加密數據存儲資料庫;
20.否則返回操作失敗後的字符串數據。
21.第二方面,本技術提供一種無感知存儲敏感信息的系統,所述系統包括:
22.獲取模塊,用於獲取待加密或解密的欄位;
23.配置模塊,用於利用所述待加密或解密的欄位,進行加解密欄位配置及不同環境密鑰配置;
24.構建模塊,用於利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,在程序與資料庫間構建攔截器;
25.調用模塊,用於利用所述攔截器,獲取用戶的操作類型,基於用戶的操作類型進行欄位匹配,若匹配成功,則進行加密存儲或解密查詢的操作,否則,返回操作後的字符串數據。
26.第三方面,本技術提供一種無感知存儲敏感信息的設備,所述設備包括:
27.存儲器,其上存儲有可執行程序;
28.處理器,用於執行所述存儲器中的所述可執行程序,以實現上述中任一項所述方法的步驟。
29.第四方面,本技術提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機指令,所述計算機指令用於使計算機執行上述任一項所述方法的步驟。
30.本技術提供的技術方案可以包括以下有益效果:
31.本技術通過獲取待加密或解密的欄位;利用所述待加密或解密的欄位,進行加解密欄位配置及不同環境密鑰配置;利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,在程序與資料庫間構建攔截器;利用所述攔截器,獲取用戶的操作類型,基於用戶的操作類型進行欄位匹配,若匹配成功,則進行加密存儲或解密查詢的操作,否則,返回操作後的字符串數據。本技術幫助解決業務代碼與加解密代碼嚴重耦合,一旦需要更改加密解密欄位,便需要重新上線發布,靈活性低,時效性慢的問題。
32.應當理解的是,以上的一般描述和後文的細節描述僅是示例性和解釋性的,並不能限制本技術。
附圖說明
33.此處的附圖被併入說明書中並構成本說明書的一部分,示出了符合本技術的實施例,並與說明書一起用於解釋本技術的原理。
34.圖1是本技術一個實施例提供的一種無感知存儲敏感信息的方法流程示意圖;
35.圖2是本技術另一個實施例提供的一種無感知存儲敏感信息的系統組成示意圖;
36.圖3是本技術又一個實施例提供的一種無感知存儲敏感信息的設備組成示意圖;
37.圖4是本技術一個實施例提供的一種無感知存儲敏感信息的加密欄位配置及應用操作流程圖。
具體實施方式
38.這裡將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數字表示相同或相似的要素。以下示例性實施例中所描述的實施方式並不代表與本技術相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本技術的一些方面相一致的裝置和方法的例子。
39.實施例一
40.請參閱圖1和圖4,圖1是本技術一個實施例提供的一種無感知存儲敏感信息的方法流程示意圖,所述方法包括:
41.s1.獲取待加密或解密的欄位;
42.s2.利用所述待加密或解密的欄位,進行加解密欄位配置及不同環境密鑰配置;
43.s3.利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,在程序與資料庫間構建攔截器;
44.s4.利用所述攔截器,獲取用戶的操作類型,基於用戶的操作類型進行欄位匹配,若匹配成功,則進行加密存儲或解密查詢的操作,否則,返回操作後的字符串數據。
45.在一個實施例中,如步驟s1所述,所述獲取待加密或解密的欄位,包括:
46.獲取待加密或解密的欄位,在資料庫中新建欄位加密配置,初始化加解密欄位。
47.在一個實施例中,所述不同環境密鑰配置,包括:開發環境密鑰配置、測試環境密鑰配置和生產環境密鑰配置。
48.在一個實施例中,如步驟s3所述,所述利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,在程序與資料庫間構建攔截器,包括:
49.利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,新建configencryptplugin類,實現mybatis提供的interceptor接口,覆寫intercept接口方法;
50.配置mybatis的configuration,將所述configencryptplugin類加載到所述加解密欄位配置中,啟動時加載攔截器,並且在加載攔截器的同時預先加載配置的所述加解密欄位到本地緩存,提升欄位獲取效率;
51.需要說明的是,configencryptplugin類為配置文件類,其內容包含了攔截器具體需要攔截的內容,在本技術實施例中,具體包括,如何去識別用戶的操作類型。
52.在一個實施例中,攔截器是springmvc框架自己的,只有使用了springmvc框架的工程才能用。攔截器可以構成攔截器棧,完成特定功能。比如日誌記錄、登錄判斷、權限檢查等作用。
53.具體的,攔截器可以說相當於是個過濾器,就是把不想要的或不想顯示的內容給過濾掉。攔截器可以抽象出一部分代碼可以用來完善原來的方法。同時可以減輕代碼冗餘,提高重用率。
54.在具體實施時,比如在登入一個頁面時,如果要求用戶密碼、權限等的驗證,就可以用自定義的攔截器進行密碼驗證和權限限制。對符合的登入者才跳轉到正確頁面。這樣
如果有新增權限的話,不用在action裡修改任何代碼,直接在interceptor裡修改就行了。
55.在本技術實施例中,如步驟s4所述,所述利用所述攔截器,獲取用戶的操作類型,基於用戶的操作類型進行欄位匹配,若匹配成功,則進行加密存儲或解密查詢的操作,否則,返回操作後的字符串數據,包括:
56.利用所述攔截器,根據攔截的調用參數invocation判斷當前執行的sql執行方式為查詢或是保存;
57.如圖4所示,若檢測到所述執行方式為查詢時,通過查詢資料庫獲取對象數據,所述對象數據的對象欄位與解密欄位進行匹配,若匹配成功,則獲取秘鑰對加密欄位進行解密,通過反射將解密數據賦值到原欄位;
58.否則返回操作失敗後的字符串數據;
59.若檢測到所述執行方式為保存時,所述對象數據的對象欄位與加密欄位進行匹配,若匹配成功,則獲取秘鑰對加密欄位進行加密,通過反射將解密數據賦值到原欄位,然後將加密數據存儲資料庫;
60.否則返回操作失敗後的字符串數據。
61.在本技術實施例中,通過獲取待加密或解密的欄位;利用所述待加密或解密的欄位,進行加解密欄位配置及不同環境密鑰配置;利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,在程序與資料庫間構建攔截器;利用所述攔截器,獲取用戶的操作類型,基於用戶的操作類型進行欄位匹配,若匹配成功,則進行加密存儲或解密查詢的操作,否則,返回操作後的字符串數據。本技術幫助解決業務代碼與加解密代碼嚴重耦合,一旦需要更改加密解密欄位,便需要重新上線發布,靈活性低,時效性慢的問題。
62.實施例二
63.請參閱圖2,圖2是本技術另一個實施例提供的一種無感知存儲敏感信息的系統組成示意圖,所述系統包括:
64.獲取模塊101,用於獲取待加密或解密的欄位;
65.配置模塊102,用於利用所述待加密或解密的欄位,進行加解密欄位配置及不同環境密鑰配置;
66.構建模塊103,用於利用所述待加解密的欄位、加解密欄位配置及不同環境密鑰配置的結果,在程序與資料庫間構建攔截器;
67.調用模塊104,用於利用所述攔截器,獲取用戶的操作類型,基於用戶的操作類型進行欄位匹配,若匹配成功,則進行加密存儲或解密查詢的操作,否則,返回操作後的字符串數據。
68.實施例三
69.請參閱圖3,圖3是本技術又一個實施例提供的一種無感知存儲敏感信息的設備組成示意圖,所述設備包括:
70.存儲器31,其上存儲有可執行程序;
71.處理器32,用於執行所述存儲器31中的所述可執行程序,以實現上述中任一項所述方法的步驟
72.此外,本技術提供一種計算機可讀存儲介質,所述計算機可讀存儲介質存儲有計算機指令,所述計算機指令用於使計算機執行上述任一項所述方法的步驟。其中,所述存儲
介質可為磁碟、光碟、只讀存儲記憶體(read-onlymemory,rom)、隨機存儲記憶體(random access memory,ram)、快閃記憶體(flash memory)、硬碟(hard disk drive,縮寫:hdd)或固態硬碟(solid-state drive,ssd)等;所述存儲介質還可以包括上述種類的存儲器的組合。
73.可以理解的是,上述各實施例中相同或相似部分可以相互參考,在一些實施例中未詳細說明的內容可以參見其他實施例中相同或相似的內容。
74.需要說明的是,在本技術的描述中,術語「第一」、「第二」等僅用於描述目的,而不能理解為指示或暗示相對重要性。此外,在本技術的描述中,除非另有說明,「多個」的含義是指至少兩個。
75.流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用於實現特定邏輯功能或過程的步驟的可執行指令的代碼的模塊、片段或部分,並且本技術的優選實施方式的範圍包括另外的實現,其中可以不按所示出或討論的順序,包括根據所涉及的功能按基本同時的方式或按相反的順序,來執行功能,這應被本技術的實施例所屬技術領域的技術人員所理解。
76.應當理解,本技術的各部分可以用硬體、軟體、固件或它們的組合來實現。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執行系統執行的軟體或固件來實現。例如,如果用硬體來實現,和在另一實施方式中一樣,可用本領域公知的下列技術中的任一項或他們的組合來實現:具有用於對數據信號實現邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(pga),現場可編程門陣列(fpga)等。
77.本技術領域的普通技術人員可以理解實現上述實施例方法攜帶的全部或部分步驟是可以通過程序來指令相關的硬體完成,所述的程序可以存儲於一種計算機可讀存儲介質中,該程序在執行時,包括方法實施例的步驟之一或其組合。
78.此外,在本技術各個實施例中的各功能單元可以集成在一個處理模塊中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個模塊中。上述集成的模塊既可以採用硬體的形式實現,也可以採用軟體功能模塊的形式實現。所述集成的模塊如果以軟體功能模塊的形式實現並作為獨立的產品銷售或使用時,也可以存儲在一個計算機可讀取存儲介質中。
79.上述提到的存儲介質可以是只讀存儲器,磁碟或光碟等。
80.在本說明書的描述中,參考術語「一個實施例」、「一些實施例」、「示例」、「具體示例」、或「一些示例」等的描述意指結合該實施例或示例描述的具體特徵、結構、材料或者特點包含於本技術的至少一個實施例或示例中。在本說明書中,對上述術語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特徵、結構、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結合。
81.儘管上面已經示出和描述了本技術的實施例,可以理解的是,上述實施例是示例性的,不能理解為對本技術的限制,本領域的普通技術人員在本技術的範圍內可以對上述實施例進行變化、修改、替換和變型。