本技術涉及數(shù)據(jù)處理,尤其涉及一種應用于dao層的數(shù)據(jù)脫敏方法、裝置、設備及存儲介質。
背景技術:
1、在處理大量包含敏感信息的數(shù)據(jù)時,如何既能保證數(shù)據(jù)安全性又能保持處理靈活性是一個復雜的技術挑戰(zhàn)。
2、傳統(tǒng)的數(shù)據(jù)脫敏方法往往需要針對不同類型的數(shù)據(jù)編寫專門的處理邏輯,這不僅增加了開發(fā)難度,也降低了系統(tǒng)的可擴展性。同時,在實際應用中,數(shù)據(jù)結構和敏感字段可能頻繁變化,如何動態(tài)識別和處理這些變化也是一個棘手問題。此外,不同類型的敏感數(shù)據(jù)可能需要不同的脫敏策略,如何在一個統(tǒng)一的框架內靈活應對這種多樣性也是一個技術難點。更進一步,在大規(guī)模數(shù)據(jù)處理場景下,脫敏過程的性能和效率也是不容忽視的問題。如何在保證數(shù)據(jù)安全的同時,最小化對系統(tǒng)整體性能的影響,是需要權衡的關鍵問題。另外,在復雜的業(yè)務場景中,可能存在多層嵌套的數(shù)據(jù)結構,如何有效地識別和處理這些深層次的敏感信息,同時避免對非敏感數(shù)據(jù)的誤處理,也是一個技術挑戰(zhàn)。由此可見,傳統(tǒng)的數(shù)據(jù)脫敏方法存在數(shù)據(jù)安全性較低的問題。
技術實現(xiàn)思路
1、本技術實施例的目的在于提出一種應用于dao層的數(shù)據(jù)脫敏方法、裝置、設備及存儲介質,以解決傳統(tǒng)的數(shù)據(jù)脫敏方法存在數(shù)據(jù)安全性較低的問題。
2、為了解決上述技術問題,本技術實施例提供一種應用于dao層的數(shù)據(jù)脫敏方法,采用了如下所述的技術方案:
3、根據(jù)反射機制掃描數(shù)據(jù)對象的所有字段信息,得到字段列表;
4、對所述字段列表進行脫敏注解處理,得到脫敏注解后的數(shù)據(jù)對象;
5、根據(jù)反射工具類遍歷所述脫敏注解后的數(shù)據(jù)對象,并獲取存在脫敏注解的目標字段;
6、根據(jù)所述目標字段的類型調用與所述類型相對應的處理器類型,得到處理器鏈;
7、從處理器鏈頭開始依次調用處理器接口,并根據(jù)所述調用處理器接口的執(zhí)行脫敏方法對所述目標字段進行數(shù)據(jù)脫敏處理,得到脫敏后的數(shù)據(jù)對象。
8、進一步的,所述對所述字段列表進行脫敏注解處理,得到脫敏注解后的數(shù)據(jù)對象的步驟,具體包括下述步驟:
9、調用預設的敏感數(shù)據(jù)類型規(guī)則庫,并在所述敏感數(shù)據(jù)類型規(guī)則庫中對所述字段列表中的每個字段進行匹配處理,得到敏感字段以及與所述敏感字段相對應的脫敏注解;
10、根據(jù)反射機制獲取所述敏感字段的元數(shù)據(jù),并判斷所述元數(shù)據(jù)是否存在歷史注解;
11、若所述元數(shù)據(jù)不存在歷史注解,則將所述脫敏注解動態(tài)添加至所述元數(shù)據(jù)中;
12、若所述元數(shù)據(jù)存在歷史注解,則根據(jù)注解合并規(guī)則對所述歷史注解以及所述脫敏注解進行注解合并處理,得到最終注解配置,并根據(jù)所述最終注解配置更新所述元數(shù)據(jù);
13、當所有所述敏感字段均完成脫敏注解的添加處理之后,得到所述脫敏注解后的數(shù)據(jù)對象。
14、進一步的,在所述從處理器鏈頭開始依次調用處理器接口,并根據(jù)所述調用處理器接口的執(zhí)行脫敏方法對所述目標字段進行數(shù)據(jù)脫敏處理,得到脫敏后的數(shù)據(jù)對象的步驟之后,還包括下述步驟:
15、若脫敏處理后的目標字段需要加密處理,則隨機生成一個aes密鑰;
16、根據(jù)aes算法以及所述aes密鑰對所述脫敏處理后的目標字段進行加密處理,得到加密字段數(shù)據(jù);
17、根據(jù)rsa算法以及系統(tǒng)中預置的公鑰對所述aes密鑰進行加密處理,得到加密后的aes密鑰;
18、根據(jù)密鑰管理中心獲取當前加密處理對應的密鑰管理策略;
19、根據(jù)所述密鑰管理策略將加密后的aes密鑰分發(fā)至相應的存儲位置;
20、在分布式環(huán)境中,獲取所述加密字段數(shù)據(jù)的分布情況,并判斷數(shù)據(jù)傳輸時是否需要重新加密;
21、若需要重新加密,則根據(jù)aes算法在每個分布式節(jié)點上使用相同的aes密鑰對數(shù)據(jù)進行重新加密處理,得到新的加密數(shù)據(jù)。
22、進一步的,所述根據(jù)aes算法以及所述aes密鑰對所述脫敏處理后的目標字段進行加密處理,得到加密字段數(shù)據(jù)的步驟,具體包括下述步驟:
23、獲取系統(tǒng)當前時間,確定滑動窗口的起始時間和結束時間,得到所述滑動窗口的時間長度;
24、根據(jù)所述滑動窗口的時間長度,統(tǒng)計所述滑動窗口內的所述加密處理次數(shù),計算所述加密處理的頻率,得到當前滑動窗口內的所述加密處理頻率;
25、監(jiān)控所述滑動窗口內的cpu使用率,獲取當前cpu使用率,判斷其是否超過預設的cpu使用率閾值,得到cpu使用率;
26、監(jiān)控所述滑動窗口內的系統(tǒng)響應時間,獲取當前系統(tǒng)響應時間,判斷其是否超過預設的系統(tǒng)響應時間閾值,得到系統(tǒng)響應時間;
27、若cpu使用率和系統(tǒng)響應時間均未超過預設閾值,則保持滑動窗口大小不變,繼續(xù)監(jiān)控;
28、若所述cpu使用率和所述系統(tǒng)響應時間任一指標超過預設閾值,則根據(jù)滑動窗口大小的調整幅度,增加滑動窗口的大小,重新確定滑動窗口的起始時間和結束時間,得到新的滑動窗口時間長度;
29、重新統(tǒng)計新的滑動窗口內的所述加密處理次數(shù),再次計算所述加密處理的頻率,得到新的所述加密處理頻率;
30、若滑動窗口大小超過上限或低于下限,則根據(jù)滑動窗口大小的上限和下限,調整滑動窗口大小至合理范圍,重新確定滑動窗口的起始時間和結束時間,得到調整后的滑動窗口時間長度。
31、根據(jù)新的所述加密處理頻率和滑動窗口時間長度,動態(tài)調整所述加密處理的頻率。
32、進一步的,在所述根據(jù)aes算法以及所述aes密鑰對所述脫敏處理后的目標字段進行加密處理,得到加密字段數(shù)據(jù)的步驟之后,還包括下述步驟:
33、獲取數(shù)據(jù)庫中的所有數(shù)據(jù)記錄,并提取每條數(shù)據(jù)記錄的數(shù)據(jù)記錄標識以及加密狀態(tài)字段,得到當前數(shù)據(jù)的加密信息;
34、若所述加密狀態(tài)為明文,則提取所述數(shù)據(jù)記錄的數(shù)據(jù)內容進行加密處理,得到加密后的數(shù)據(jù);
35、若所述加密狀態(tài)為密文,則提取所述數(shù)據(jù)記錄的加密版本號,并判斷所述加密版本號是否為當前加密版本;
36、若所述加密版本號不是當前加密版本,則提取所述數(shù)據(jù)記錄的數(shù)據(jù)內容的密文數(shù)據(jù)進行解密處理,得到明文數(shù)據(jù),并根據(jù)新的加密算法對所述明文數(shù)據(jù)進行重新加密,得到新的密文數(shù)據(jù);
37、獲取當前時間戳以及加密版本號,并根據(jù)所述當前時間戳以及所述加密版本號對素數(shù)當前數(shù)據(jù)的加密信息進行更新處理。
38、為了解決上述技術問題,本技術實施例還提供一種應用于dao層的數(shù)據(jù)脫敏裝置,采用了如下所述的技術方案:
39、字段列表獲取模塊,用于根據(jù)反射機制掃描數(shù)據(jù)對象的所有字段信息,得到字段列表;
40、脫敏注解模塊,用于對所述字段列表進行脫敏注解處理,得到脫敏注解后的數(shù)據(jù)對象;
41、目標字段獲取模塊,用于根據(jù)反射工具類遍歷所述脫敏注解后的數(shù)據(jù)對象,并獲取存在脫敏注解的目標字段;
42、處理器鏈獲取模塊,用于根據(jù)所述目標字段的類型調用與所述類型相對應的處理器類型,得到處理器鏈;
43、數(shù)據(jù)脫敏模塊,用于從處理器鏈頭開始依次調用處理器接口,并根據(jù)所述調用處理器接口的執(zhí)行脫敏方法對所述目標字段進行數(shù)據(jù)脫敏處理,得到脫敏后的數(shù)據(jù)對象。
44、進一步的,所述脫敏注解模塊包括:
45、字段匹配子模塊,用于調用預設的敏感數(shù)據(jù)類型規(guī)則庫,并在所述敏感數(shù)據(jù)類型規(guī)則庫中對所述字段列表中的每個字段進行匹配處理,得到敏感字段以及與所述敏感字段相對應的脫敏注解;
46、注解判斷子模塊,用于根據(jù)反射機制獲取所述敏感字段的元數(shù)據(jù),并判斷所述元數(shù)據(jù)是否存在歷史注解;
47、注解添加子模塊,用于若所述元數(shù)據(jù)不存在歷史注解,則將所述脫敏注解動態(tài)添加至所述元數(shù)據(jù)中;
48、注解合并子模塊,用于若所述元數(shù)據(jù)存在歷史注解,則根據(jù)注解合并規(guī)則對所述歷史注解以及所述脫敏注解進行注解合并處理,得到最終注解配置,并根據(jù)所述最終注解配置更新所述元數(shù)據(jù);
49、脫敏注解確認子模塊,用于當所有所述敏感字段均完成脫敏注解的添加處理之后,得到所述脫敏注解后的數(shù)據(jù)對象。
50、進一步的,所述裝置還包括:
51、密鑰生成模塊,用于若脫敏處理后的目標字段需要加密處理,則隨機生成一個aes密鑰;
52、第一加密處理模塊,用于根據(jù)aes算法以及所述aes密鑰對所述脫敏處理后的目標字段進行加密處理,得到加密字段數(shù)據(jù);
53、第二加密處理模塊,用于根據(jù)rsa算法以及系統(tǒng)中預置的公鑰對所述aes密鑰進行加密處理,得到加密后的aes密鑰;
54、策略獲取模塊,用于根據(jù)密鑰管理中心獲取當前加密處理對應的密鑰管理策略;
55、密鑰分發(fā)模塊,用于根據(jù)所述密鑰管理策略將加密后的aes密鑰分發(fā)至相應的存儲位置;
56、加密判斷模塊,用于在分布式環(huán)境中,獲取所述加密字段數(shù)據(jù)的分布情況,并判斷數(shù)據(jù)傳輸時是否需要重新加密;
57、重新加密模塊,用于若需要重新加密,則根據(jù)aes算法在每個分布式節(jié)點上使用相同的aes密鑰對數(shù)據(jù)進行重新加密處理,得到新的加密數(shù)據(jù)。
58、為了解決上述技術問題,本技術實施例還提供一種計算機設備,采用了如下所述的技術方案:
59、包括存儲器和處理器,所述存儲器中存儲有計算機可讀指令,所述處理器執(zhí)行所述計算機可讀指令時實現(xiàn)如上所述的應用于dao層的數(shù)據(jù)脫敏方法的步驟。
60、為了解決上述技術問題,本技術實施例還提供一種計算機可讀存儲介質,采用了如下所述的技術方案:
61、所述計算機可讀存儲介質上存儲有計算機可讀指令,所述計算機可讀指令被處理器執(zhí)行時實現(xiàn)如上所述的應用于dao層的數(shù)據(jù)脫敏方法的步驟。
62、本技術提供了一種應用于dao層的數(shù)據(jù)脫敏方法,包括:根據(jù)反射機制掃描數(shù)據(jù)對象的所有字段信息,得到字段列表;對所述字段列表進行脫敏注解處理,得到脫敏注解后的數(shù)據(jù)對象;根據(jù)反射工具類遍歷所述脫敏注解后的數(shù)據(jù)對象,并獲取存在脫敏注解的目標字段;根據(jù)所述目標字段的類型調用與所述類型相對應的處理器類型,得到處理器鏈;從處理器鏈頭開始依次調用處理器接口,并根據(jù)所述調用處理器接口的執(zhí)行脫敏方法對所述目標字段進行數(shù)據(jù)脫敏處理,得到脫敏后的數(shù)據(jù)對象。與現(xiàn)有技術相比,本技術能夠有效地對敏感數(shù)據(jù)進行保護,同時保持數(shù)據(jù)處理的靈活性和擴展性,適用于需要高度數(shù)據(jù)保密的各種應用場景。