本發(fā)明涉及文件存儲(chǔ)領(lǐng)域,具體涉及文件加密存儲(chǔ)方法、存儲(chǔ)介質(zhì)及設(shè)備。
背景技術(shù):
1、隨著數(shù)字化進(jìn)程的深入演進(jìn),數(shù)據(jù)資產(chǎn)已成為企業(yè)核心競爭力的關(guān)鍵載體,隨之而來的安全問題亦上升至各行業(yè)的核心議題。當(dāng)前,多數(shù)企業(yè)雖然通過https協(xié)議對(duì)服務(wù)器與客戶端、web頁面之間的通信鏈路實(shí)施傳輸層加密,但在數(shù)據(jù)存儲(chǔ)層面,仍廣泛存在直接以明文形式留存文件的現(xiàn)象,這類存儲(chǔ)模式不僅違背最小權(quán)限原則,更將敏感信息暴露于內(nèi)部越權(quán)訪問、外部惡意攻擊、供應(yīng)鏈滲透等多重風(fēng)險(xiǎn)之下,潛藏嚴(yán)峻的數(shù)據(jù)泄露隱患和合規(guī)危機(jī)。
技術(shù)實(shí)現(xiàn)思路
1、基于此,本發(fā)明提供文件加密存儲(chǔ)方法、存儲(chǔ)介質(zhì)及設(shè)備,通過對(duì)文件切片加密的形式把加密切片存儲(chǔ)在一個(gè)或多個(gè)存儲(chǔ)節(jié)點(diǎn)中的不同文件路徑,確保資源文件只能通過系統(tǒng)接口進(jìn)行訪問,避免了文件的直接訪問,提高文件存儲(chǔ)和訪問的保密性,降低文件存儲(chǔ)的安全隱患。
2、第一方面,本發(fā)明提供一種文件加密存儲(chǔ)方法,所述文件加密存儲(chǔ)方法應(yīng)用于文件存儲(chǔ)系統(tǒng),所述文件存儲(chǔ)系統(tǒng)包括文件存儲(chǔ)服務(wù)器和若干個(gè)存儲(chǔ)節(jié)點(diǎn),所述文件存儲(chǔ)服務(wù)器與各個(gè)存儲(chǔ)節(jié)點(diǎn)通信連接,所述文件加密存儲(chǔ)方法由文件存儲(chǔ)服務(wù)器執(zhí)行,包括以下步驟:
3、步驟s101,獲取待加密文件以及預(yù)設(shè)的文件切片長度;
4、步驟s102,隨機(jī)生成一個(gè)第一隨機(jī)數(shù),并根據(jù)第一隨機(jī)數(shù)和預(yù)設(shè)的文件切片長度得到實(shí)際切片長度;
5、步驟s103根據(jù)實(shí)際切片長度按順序從切割起點(diǎn)開始對(duì)所述待加密文件進(jìn)行切割,得到第一文件切片;
6、步驟s104,隨機(jī)生成一個(gè)第二隨機(jī)數(shù);
7、步驟s105,將所述第一隨機(jī)數(shù)轉(zhuǎn)換為十六進(jìn)制得到切片頭部,所述第二隨機(jī)數(shù)轉(zhuǎn)換為十六進(jìn)制得到切片尾部;
8、步驟s106,依次將所述切片頭部、第一文件切片、第二隨機(jī)數(shù)和切片尾部依次拼接,得到待加密切片;
9、步驟s107,根據(jù)前一文件切片md5值對(duì)待加密切片進(jìn)行加密得到預(yù)加密切片;
10、步驟s108,將所述前一文件切片md5值與所述預(yù)加密切片后進(jìn)行二次加密得到所述第一文件切片的md5值;
11、步驟s109,將所述前一文件切片md5值、預(yù)加密切片和第一文件切片的md5值依次拼接后得到切片加密文件;
12、步驟s110,將所述第一文件切片的結(jié)束位置作為所述待加密文件中后一文件切片的切割起點(diǎn),重復(fù)執(zhí)行上述步驟s102-s109,直至所述待加密文件中所有內(nèi)容都完成加密,得到若干個(gè)切片加密文件;
13、步驟s111,將各個(gè)第一文件切片的md5值中前若干位作為所述切片加密文件的文件存儲(chǔ)路徑,并根據(jù)所述文件存儲(chǔ)路徑將所述切片加密文件存儲(chǔ)至各個(gè)存儲(chǔ)節(jié)點(diǎn);
14、步驟s112,將所述切片加密文件的文件存儲(chǔ)路徑、第一文件切片的md5值、所述切片加密文件與所述待加密文件的數(shù)據(jù)關(guān)系、切片加密文件的索引號(hào)存儲(chǔ)至數(shù)據(jù)庫中保存。
15、進(jìn)一步的,所述文件加密存儲(chǔ)方法還包括:
16、當(dāng)所述切割起點(diǎn)為所述待加密文件的初始位置,所述第一文件切片對(duì)應(yīng)的前一文件切片md5值為32位0。
17、進(jìn)一步的,所述切片頭部和切片尾部的長度為2個(gè)字節(jié)。
18、進(jìn)一步的,所述根據(jù)前一文件切片md5值對(duì)待加密切片進(jìn)行加密得到預(yù)加密切片,具體為:
19、提取所述前一文件切片md5值得最后兩個(gè)字符,并根據(jù)所述最后兩個(gè)字符取模結(jié)果確定所述加密運(yùn)算算法,并根據(jù)所述前一文件切片md5值以及所述加密運(yùn)算算法對(duì)所述待加密切片進(jìn)行加密,得到預(yù)加密切片。
20、進(jìn)一步的,所述加密運(yùn)算算法包括aes-256?cbc加密運(yùn)算算法、aes-256?cfb加密運(yùn)算算法和aes-256?ctr加密運(yùn)算算法。
21、進(jìn)一步的,所述文件加密存儲(chǔ)方法還包括:
22、若接收到用戶端發(fā)送的文件訪問請(qǐng)求,向用戶端發(fā)送驗(yàn)證指令;
23、根據(jù)用戶端反饋的驗(yàn)證信息和數(shù)據(jù)庫存儲(chǔ)的用戶信息,校驗(yàn)所述用戶端是否為合法用戶、以及所述用戶端是否有文件訪問權(quán)限;
24、若所述用戶端為合法用戶,并且所述用戶端有文件訪問權(quán)限,根據(jù)所述文件訪問請(qǐng)求獲取訪問文件所有加密切片的文件路徑,根據(jù)所述文件路徑讀取所有加密切片;
25、通過若干個(gè)解碼器對(duì)所述加密切片進(jìn)行解密,得到解密切片;
26、將所有解密切片按順序拼接得到還原文件,并將還原文件推送至用戶端。
27、所述通過若干個(gè)解碼器對(duì)所述加密切片進(jìn)行解密,得到解密切片,對(duì)任意一個(gè)加密切片解密包括以下步驟:
28、截取所述加密切片前32位字符記為第一片段,截取所述加密切片前33-64位字符記為第二片段,剩余字符記為第三片段;
29、若所述第一片段與所述加密切片的md5值一致,根據(jù)所述第二片段確定所述第三片段的加密方式,并結(jié)合所述加密方式對(duì)所述第三片段進(jìn)行解密,得到解密后片段;
30、按預(yù)設(shè)字節(jié)數(shù)對(duì)所述解密后片段截取切片頭部和切片尾部,得到中間解密片段;
31、根據(jù)所述切片尾部推導(dǎo)第二隨機(jī)數(shù)長度,并從中間解密片段尾部按第二隨機(jī)數(shù)長度刪減第二隨機(jī)數(shù),得到解密切片。
32、進(jìn)一步的,所述文件加密存儲(chǔ)方法還包括:
33、向用戶推送還原文件的同時(shí),銷毀所述還原文件對(duì)應(yīng)的臨時(shí)文件。
34、第二方面,本發(fā)明還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)第一方面中任一項(xiàng)文件加密存儲(chǔ)方法的步驟。
35、第三方面,本發(fā)明還提供一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí),執(zhí)行第一方面中任一項(xiàng)文件加密存儲(chǔ)方法。
36、采用上述技術(shù)方案的有益效果為:本實(shí)施例引入隨機(jī)數(shù)動(dòng)態(tài)調(diào)整文件切片大小、并根據(jù)前一切片的哈希值動(dòng)態(tài)計(jì)算加密規(guī)則,再對(duì)加密文件切片進(jìn)行多路徑多節(jié)點(diǎn)存儲(chǔ),提高非法用戶對(duì)資源文件破解加密的難度,保障文件存儲(chǔ)服務(wù)器內(nèi)文件安全。進(jìn)一步的,本實(shí)施例通過多線程解密還原的方式縮短用戶端對(duì)加密文件解密讀取時(shí)間,并設(shè)置有推送即焚的方式降低臨時(shí)文件被泄露的風(fēng)險(xiǎn)。
1.一種文件加密存儲(chǔ)方法,所述文件加密存儲(chǔ)方法應(yīng)用于文件存儲(chǔ)系統(tǒng),所述文件存儲(chǔ)系統(tǒng)包括文件存儲(chǔ)服務(wù)器和若干個(gè)存儲(chǔ)節(jié)點(diǎn),所述文件存儲(chǔ)服務(wù)器與各個(gè)存儲(chǔ)節(jié)點(diǎn)通信連接,其特征在于,所述文件加密存儲(chǔ)方法由文件存儲(chǔ)服務(wù)器執(zhí)行,包括以下步驟:
2.如權(quán)利要求1所述的文件加密存儲(chǔ)方法,其特征在于,還包括:
3.如權(quán)利要求2所述的文件加密存儲(chǔ)方法,其特征在于,所述切片頭部和切片尾部的長度為2個(gè)字節(jié)。
4.如權(quán)利要求3所述的文件加密存儲(chǔ)方法,其特征在于,所述根據(jù)前一文件切片md5值對(duì)待加密切片進(jìn)行加密得到預(yù)加密切片,具體為:
5.如權(quán)利要求4所述的文件加密存儲(chǔ)方法,其特征在于,所述加密運(yùn)算算法包括aes-256?cbc加密運(yùn)算算法、aes-256?cfb加密運(yùn)算算法和aes-256?ctr加密運(yùn)算算法。
6.如權(quán)利要求1-5任一項(xiàng)所述的文件加密存儲(chǔ)方法,其特征在于,還包括:
7.如權(quán)利要求6所述的文件加密存儲(chǔ)方法,其特征在于,所述通過若干個(gè)解碼器對(duì)所述加密切片進(jìn)行解密,得到解密切片,對(duì)任意一個(gè)加密切片解密包括以下步驟:
8.如權(quán)利要求7所述的文件加密存儲(chǔ)方法,其特征在于,還包括:
9.一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其上存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述計(jì)算機(jī)程序被處理器執(zhí)行時(shí)實(shí)現(xiàn)權(quán)利要求1-8中任一項(xiàng)所述文件加密存儲(chǔ)方法的步驟。
10.一種計(jì)算機(jī)設(shè)備,包括存儲(chǔ)器和處理器,所述存儲(chǔ)器存儲(chǔ)有計(jì)算機(jī)程序,其特征在于,所述處理器執(zhí)行所述計(jì)算機(jī)程序時(shí),執(zhí)行權(quán)利要求1-8中任一項(xiàng)所述文件加密存儲(chǔ)方法。