本技術(shù)涉及數(shù)據(jù)加密,特別是涉及一種加密方法、解密方法、分詞單向加密方法、設(shè)備和介質(zhì)。
背景技術(shù):
1、隨著國家監(jiān)管和合規(guī)的要求,以及數(shù)據(jù)作為公司重要的資產(chǎn),因此需要對數(shù)據(jù)進行加密再存儲。然而在數(shù)據(jù)加密過程中,由于現(xiàn)有技術(shù)設(shè)計不完善和實現(xiàn)不規(guī)范,導(dǎo)致數(shù)據(jù)存儲出現(xiàn)安全風(fēng)險與可用性降低等問題。例如:
2、1、密鑰的存儲不規(guī)范。如通過配置文件、硬編碼等方式直接存儲密鑰,攻擊者通過反編譯代碼獲取密鑰,或?qū)⒚魑拿荑€直接放在文件中,由于明文密鑰可讀性高,會導(dǎo)致明文密鑰的暴露風(fēng)險高。
3、2、密鑰強度低。一是密鑰長度不足導(dǎo)致密鑰空間有限,二是通過不安全的偽隨機數(shù)產(chǎn)生密鑰。這兩種情況都會導(dǎo)致密鑰強度下降,導(dǎo)致碰撞概率高,更容易受到窮舉搜索、字典攻擊或彩虹表攻擊。
4、3、使用的密碼算法強度低。如使用md5、sha1哈希算法存儲用戶密碼、手機號等,這些算法都已被證明存在碰撞攻擊的漏洞。使用這些算法加密的敏感數(shù)據(jù),安全性極大下降。
5、4、可用性降低。在數(shù)據(jù)加密后,導(dǎo)致數(shù)據(jù)的模糊查詢功能不可用。因為數(shù)據(jù)加密后,會顯著地改變數(shù)據(jù)的形式和結(jié)構(gòu),導(dǎo)致模糊查詢變得困難。
6、綜上,在現(xiàn)有技術(shù)中,密鑰從生成、存儲、分發(fā)至使用的過程中,存在密鑰泄露、密鑰強度低、密文易破解等風(fēng)險,進而直接影響整個系統(tǒng)的安全性。
技術(shù)實現(xiàn)思路
1、基于此,有必要針對上述技術(shù)問題,提供一種能夠提高數(shù)據(jù)加密安全性的加密方法、解密方法、分詞單向加密方法、設(shè)備和介質(zhì)。
2、一種數(shù)據(jù)加密方法,包括以下步驟:
3、在獲取到明文業(yè)務(wù)數(shù)據(jù)時,查詢內(nèi)存是否存儲有對應(yīng)的本地業(yè)務(wù)密鑰;本地業(yè)務(wù)密鑰包括本地明文密鑰和本地密文密鑰;
4、若查詢到內(nèi)存未存儲對應(yīng)的本地業(yè)務(wù)密鑰,則生成驗簽信息,并將驗簽信息和主密鑰標識發(fā)送主設(shè)備;驗簽信息和主密鑰標識用于指示主設(shè)備在基于驗簽信息和主密鑰標識驗證通過后,基于對稱加密算法和主密鑰標識生成第一密文密鑰,基于非對稱加密算法和驗簽信息生成第二密文密鑰;驗簽信息攜帶有應(yīng)用標識、隨機數(shù)字、時間戳、版本號和簽名信息;
5、接收主設(shè)備發(fā)送的第一密文密鑰和第二密文密鑰,并使用第二密文密鑰對明文業(yè)務(wù)數(shù)據(jù)加密,獲取密文業(yè)務(wù)數(shù)據(jù);
6、輸出密文業(yè)務(wù)數(shù)據(jù)和第一密文密鑰。
7、在其中一個實施例中,還包括步驟:
8、若查詢到內(nèi)存存儲有對應(yīng)的本地業(yè)務(wù)密鑰,則判斷本地業(yè)務(wù)密鑰是否過期;
9、若判斷本地業(yè)務(wù)密鑰未過期,則使用本地明文密鑰對明文業(yè)務(wù)數(shù)據(jù)加密,獲取密文業(yè)務(wù)數(shù)據(jù);
10、輸出密文業(yè)務(wù)數(shù)據(jù)和本地密文密鑰。
11、在其中一個實施例中,還包括步驟:
12、若判斷本地業(yè)務(wù)密鑰已過期,則生成驗簽信息,并將驗簽信息和主密鑰標識發(fā)送主設(shè)備;驗簽信息和主密鑰標識用于指示主設(shè)備在基于驗簽信息和主密鑰標識驗證通過后,基于對稱加密算法和主密鑰標識生成第一密文密鑰,基于非對稱加密算法和驗簽信息生成第二密文密鑰;
13、接收主設(shè)備發(fā)送的第一密文密鑰和第二密文密鑰,并使用第二密文密鑰對明文業(yè)務(wù)數(shù)據(jù)加密,獲取密文業(yè)務(wù)數(shù)據(jù);
14、輸出密文業(yè)務(wù)數(shù)據(jù)和第一密文密鑰。
15、在其中一個實施例中,基于以下步驟生成簽名信息:
16、將應(yīng)用標識、隨機數(shù)字、時間戳和版本號按照順序依次拼接,生成明文簽名文本;
17、基于簽名算法和對應(yīng)的應(yīng)用密鑰處理明文簽名文本,生成簽名信息。
18、在其中一個實施例中,接收主設(shè)備發(fā)送的第一密文密鑰和第二密文密鑰的步驟之后,還包括步驟:
19、獲取非對稱加密算法對應(yīng)的私鑰,并基于私鑰和非對稱加密算法對第二密文密鑰進行解密,獲取第二密文密鑰對應(yīng)的明文密鑰;
20、為明文密鑰和第一密文密鑰設(shè)置過期時間,并進行存儲,對應(yīng)形成本地明文密鑰和本地密文密鑰。
21、在其中一個實施例中,使用第二密文密鑰對明文業(yè)務(wù)數(shù)據(jù)加密,獲取密文業(yè)務(wù)數(shù)據(jù)的步驟中,包括步驟:
22、獲取第二密文密鑰對應(yīng)的明文密鑰,并對明文密鑰進行字符串移位加密得到明文業(yè)務(wù)密鑰;
23、利用對稱加密算法和明文業(yè)務(wù)密鑰對明文業(yè)務(wù)數(shù)據(jù)進行加密,得到初始密文業(yè)務(wù)數(shù)據(jù);
24、將初始密文業(yè)務(wù)數(shù)據(jù)再次經(jīng)過凱撒加密后,得到密文業(yè)務(wù)數(shù)據(jù)。
25、一種數(shù)據(jù)加密方法,包括以下步驟:
26、接收終端發(fā)送的驗簽信息和主密鑰標識;驗簽信息為終端在獲取到明文業(yè)務(wù)數(shù)據(jù)時,查詢內(nèi)存未存儲有對應(yīng)的本地業(yè)務(wù)密鑰后生成的,或終端在獲取到明文業(yè)務(wù)數(shù)據(jù)時,查詢到內(nèi)存存儲有對應(yīng)的本地業(yè)務(wù)密鑰并判斷本地業(yè)務(wù)密鑰過期后生成的;驗簽信息攜帶有應(yīng)用標識、隨機數(shù)字、時間戳、版本號和簽名信息;
27、對驗簽信息和主密鑰標識進行驗證,在驗簽信息和主密鑰標識驗證通過后,基于對稱加密算法和主密鑰標識生成第一密文密鑰,基于非對稱加密算法和驗簽信息生成第二密文密鑰;
28、將第一密文密鑰和第二密文密鑰發(fā)送給終端,以使終端使用第二密文密鑰對明文業(yè)務(wù)數(shù)據(jù)加密,獲取密文業(yè)務(wù)數(shù)據(jù),并輸出密文業(yè)務(wù)數(shù)據(jù)和第一密文密鑰。
29、在其中一個實施例中,對驗簽信息和主密鑰標識進行驗證的步驟中,包括步驟:
30、驗證驗簽信息是否完整,驗證本地是否存儲有與應(yīng)用標識相同的標識,驗證時間戳是否超時;
31、基于應(yīng)用標識、隨機數(shù)字、時間戳和版本號生成驗證簽名信息,將驗證簽名信息與簽名信息進行比對是否一致;
32、根據(jù)應(yīng)用標識查找綁定ip,將綁定ip與終端ip比對是否一致;
33、根據(jù)主密鑰標識查找是否存在對應(yīng)的主密鑰;
34、若存在對應(yīng)的主密鑰,判斷對應(yīng)的主密鑰是否被禁用。
35、在其中一個實施例中,基于對稱加密算法和主密鑰標識生成第一密文密鑰,基于非對稱加密算法和驗簽信息生成第二密文密鑰的步驟中,包括步驟:
36、通過密鑰生成器生成初始密鑰,將初始密鑰經(jīng)過移位加密后,得到明文密鑰;
37、根據(jù)主密鑰標識查找對應(yīng)的主密鑰,將主密鑰經(jīng)過移位算法,得到最終主密鑰;
38、使用對稱加密算法,以最終主密鑰作為加密密鑰,將明文密鑰進行加密得到初始密文密鑰,將初始密文密鑰經(jīng)過base64編碼后再進行凱撒加密,得到第一密文密鑰;
39、根據(jù)應(yīng)用標識,查找對應(yīng)的非對稱加密算法公鑰,基于非對稱加密算法公鑰,使用非對稱加密算法對明文密鑰進行加密,得到第二密文密鑰。
40、一種數(shù)據(jù)加密方法,包括以下步驟:
41、終端在獲取到明文業(yè)務(wù)數(shù)據(jù)時,查詢內(nèi)存是否存儲有對應(yīng)的本地業(yè)務(wù)密鑰;
42、終端若查詢到內(nèi)存未存儲對應(yīng)的本地業(yè)務(wù)密鑰,則生成驗簽信息,并將驗簽信息和主密鑰標識發(fā)送主設(shè)備;
43、主設(shè)備在基于驗簽信息驗和主密鑰標識證通過后,基于對稱加密算法和主密鑰標識生成第一密文密鑰,基于非對稱加密算法和驗簽信息生成第二密文密鑰;驗簽信息攜帶有應(yīng)用標識、隨機數(shù)字、時間戳、版本號和簽名信息;
44、主設(shè)備將第一密文密鑰和第二密文密鑰發(fā)送給終端,終端使用第二密文密鑰對明文業(yè)務(wù)數(shù)據(jù)加密,獲取密文業(yè)務(wù)數(shù)據(jù);
45、終端輸出密文業(yè)務(wù)數(shù)據(jù)和第一密文密鑰。
46、一種數(shù)據(jù)解密方法,包括以下步驟:
47、在獲取到密文業(yè)務(wù)數(shù)據(jù)和第一密文密鑰時,查詢內(nèi)存是否存儲有對應(yīng)的本地明文密鑰;
48、若查詢到內(nèi)存未存儲對應(yīng)的本地明文密鑰,則生成驗簽信息,并將驗簽信息、第一密文密鑰和主密鑰標識發(fā)送主設(shè)備;驗簽信息和主密鑰標識用于指示主設(shè)備在基于驗簽信息和主密鑰標識驗證通過后,基于對稱加密算法、第一密文密鑰和主密鑰標識生成明文密鑰,基于非對稱加密算法和明文密鑰生成第二密文密鑰;驗簽信息攜帶有應(yīng)用標識、隨機數(shù)字、時間戳、版本號和簽名信息;
49、接收主設(shè)備發(fā)送的第二密文密鑰,使用第二密文密鑰對密文業(yè)務(wù)數(shù)據(jù)解密,獲取明文業(yè)務(wù)數(shù)據(jù),并輸出明文業(yè)務(wù)數(shù)據(jù)。
50、一種數(shù)據(jù)解密方法,包括以下步驟:
51、接收終端發(fā)送的驗簽信息、第一密文密鑰和主密鑰標識;驗簽信息為終端在獲取到密文業(yè)務(wù)數(shù)據(jù)和第一密文密鑰時,查詢內(nèi)存未存儲有對應(yīng)的本地明文密鑰后生成的,或終端在獲取到密文業(yè)務(wù)數(shù)據(jù)和第一密文密鑰時,查詢到內(nèi)存存儲有對應(yīng)的本地明文密鑰并判斷本地明文密鑰過期后生成的;驗簽信息攜帶有應(yīng)用標識、隨機數(shù)字、時間戳、版本號和簽名信息;
52、對驗簽信息和主密鑰標識進行驗證,在驗簽信息和主密鑰標識驗證通過后,基于對稱加密算法、第一密文密鑰和主密鑰標識生成明文密鑰,基于非對稱加密算法和明文密鑰生成第二密文密鑰;
53、將第二密文密鑰發(fā)送給終端,以使終端使用第二密文密鑰對密文業(yè)務(wù)數(shù)據(jù)解密,獲取明文業(yè)務(wù)數(shù)據(jù),并輸出明文業(yè)務(wù)數(shù)據(jù)。
54、一種分詞單向加密方法,
55、在獲取到明文分詞業(yè)務(wù)數(shù)據(jù)和分詞規(guī)則時,通過第一密文分詞密鑰查詢內(nèi)存是否存儲有對應(yīng)的本地明文分詞密鑰;
56、若查詢到內(nèi)存未存儲對應(yīng)的本地明文分詞密鑰,則生成驗簽信息,并將驗簽信息、第一密文分詞密鑰和主密鑰標識發(fā)送主設(shè)備;驗簽信息和主密鑰標識用于指示主設(shè)備在基于驗簽信息和主密鑰標識驗證通過后,基于對稱加密算法、第一密文分詞密鑰和主密鑰標識生成明文分詞密鑰,基于非對稱加密算法和明文分詞密鑰生成第二密文分詞密鑰;驗簽信息攜帶有應(yīng)用標識、隨機數(shù)字、時間戳、版本號和簽名信息;
57、接收主設(shè)備發(fā)送的第二密文分詞密鑰,使用分詞規(guī)則和第二密文分詞密鑰對明文分詞業(yè)務(wù)數(shù)據(jù)加密,獲取密文分詞業(yè)務(wù)數(shù)據(jù),并輸出密文分詞業(yè)務(wù)數(shù)據(jù)。
58、一種計算機設(shè)備,包括存儲器和處理器,存儲器存儲有計算機程序,處理器執(zhí)行計算機程序時實現(xiàn)上述方法的步驟。
59、一種計算機可讀存儲介質(zhì),其上存儲有計算機程序,計算機程序被處理器執(zhí)行時實現(xiàn)上述方法的步驟。
60、上述技術(shù)方案中的一個技術(shù)方案具有如下優(yōu)點和有益效果:
61、本技術(shù)數(shù)據(jù)加密方法通過步驟:在獲取到明文業(yè)務(wù)數(shù)據(jù)時,查詢內(nèi)存是否存儲有對應(yīng)的本地業(yè)務(wù)密鑰;若查詢到內(nèi)存未存儲對應(yīng)的本地業(yè)務(wù)密鑰,則生成驗簽信息,并將驗簽信息和主密鑰標識發(fā)送主設(shè)備;驗簽信息和主密鑰標識用于指示主設(shè)備在基于驗簽信息和主密鑰標識驗證通過后,基于對稱加密算法和主密鑰標識生成第一密文密鑰,基于非對稱加密算法和驗簽信息生成第二密文密鑰;接收主設(shè)備發(fā)送的第一密文密鑰和第二密文密鑰,并使用第二密文密鑰對明文業(yè)務(wù)數(shù)據(jù)加密,獲取密文業(yè)務(wù)數(shù)據(jù);輸出密文業(yè)務(wù)數(shù)據(jù)和第一密文密鑰。本技術(shù)通過對密鑰的全生命周期(生成、存儲、使用和加密)進行管理,在不同階段使用不同安全策略,實現(xiàn)對動態(tài)密鑰的使用,對數(shù)據(jù)的安全存儲,對密文的模糊查詢。具體策略包括分離式密鑰管理,高度隨機復(fù)雜密鑰生成,多算法組合加密,密鑰權(quán)限管控,從而提高數(shù)據(jù)加密存儲的安全等級,保障模糊查詢功能可用性。