国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Yii2+sb2文件加解密管理系統(tǒng)的設(shè)計與實現(xiàn)

2021-04-20 02:23劉氫
電子技術(shù)與軟件工程 2021年2期
關(guān)鍵詞:加解密私鑰加密算法

劉氫

(上海市國有資產(chǎn)信息中心 上海市 200000)

隨著單位信息化工作的持續(xù)開展,各類業(yè)務(wù)信息系統(tǒng)存儲了大量加密和非加密的基礎(chǔ)文件,要及時準確地獲取這些基礎(chǔ)數(shù)據(jù),并安全的與相關(guān)單位進行數(shù)據(jù)交換并不容易。如何科學(xué)有效地管理文件加解密工作是問題的關(guān)鍵所在。

本文提出的基于Yii2+springboot2 的文件加解密管理系統(tǒng),可以高效解決該問題,對相關(guān)單位企業(yè)有較高的參考價值。

1 系統(tǒng)架構(gòu)設(shè)計與運行環(huán)境

1.1 系統(tǒng)架構(gòu)設(shè)計

傳統(tǒng)系統(tǒng)設(shè)計流程包括數(shù)據(jù)庫表設(shè)計,業(yè)務(wù)邏輯設(shè)計,前端界面設(shè)計,后端接口設(shè)計等,流程中每一步都需要消耗大量的時間與精力,同時還需要兼顧程序代碼的規(guī)范性,可讀性與可擴展性,這樣會導(dǎo)致研發(fā)成本過高[1]?,F(xiàn)代系統(tǒng)開發(fā)模式崇尚高效開發(fā),減少重復(fù)造輪子的工作,我們可以在成熟的開發(fā)框架上進行二次開發(fā)。Yii2 和springboot2 就是兩個成熟的開發(fā)框架。

Yii2 是一個高性能、安全、專業(yè)的全棧開源Web 開發(fā)框架,可以用于快速開發(fā)各種使用 PHP 語言構(gòu)建的中大型Web 應(yīng)用。Yii2 框架實現(xiàn)了MVC 設(shè)計模式,每個應(yīng)用都通過唯一的一個入口腳本web/index.php 文件接受Web 請求并創(chuàng)建控制器實例,該控制器實例創(chuàng)建相應(yīng)的動作實例,在該請求通過系統(tǒng)驗證之后,則執(zhí)行該動作實例[2]。Yii2 框架集成了用戶登錄系統(tǒng)及前端ui 系統(tǒng),并采用模塊化的集成方式,所以在該框架上進行開發(fā)可以專注于業(yè)務(wù)邏輯的設(shè)計。

Springboot2 也是一個非常優(yōu)秀的開發(fā)框架,其設(shè)計目的是用來簡化 web 應(yīng)用的初始搭建及開發(fā)過程。借助Springboot2 框架可以快速實現(xiàn)后端的接口開發(fā)。

單就文件加解密管理系統(tǒng)而言,我們可以只采用兩個開發(fā)框架中的任何一個,都可以實現(xiàn)所有功能,但是我們嘗試結(jié)合兩個框架的優(yōu)點,以期顯著提高開發(fā)效率和代碼質(zhì)量。系統(tǒng)整體設(shè)計圖結(jié)構(gòu)如圖1所示。

Yii2 框架的優(yōu)點之一在于Yii2 有自動生成前端頁面的gii 工具,Yii2 的視圖模塊可以通過gii 工具一鍵生成,極高的節(jié)省了前端設(shè)計和開發(fā)的時間,所以把涉及到文件管理的部分放在Yii2 框架里完成。而Springboot2 框架的優(yōu)點之一在于接口開發(fā)的快速,運用idea 工具生成springboot 項目文件之后,只需要在對應(yīng)的類下寫好相應(yīng)的路由和函數(shù)即可實現(xiàn)相關(guān)業(yè)務(wù)邏輯接口,同時考慮到j(luò)ava 版本的加解密算法庫比php 的加解密算法庫要更多更全面,所以把涉及到文件加解密的邏輯放在springboot2 框架下實現(xiàn)。

1.2 運行環(huán)境搭建

本系統(tǒng)運行環(huán)境搭建在Linux 操作系統(tǒng)上。因為Yii2 是基于php 語言的開發(fā)框架,而springboot2 是基于java 語言的開發(fā)框架,所以需要在Linux 上安裝php 和java 的執(zhí)行環(huán)境,同時需要安裝web 服務(wù)器來保證網(wǎng)絡(luò)能對外提供訪問服務(wù)。

最后選用xampp 集成環(huán)境作為系統(tǒng)運行的承載方式。XAMPP的名稱來自以下技術(shù)的組合:X(支持跨平臺)、Apache、MySQL或 MariaDB、PHP、Perl。XAMPP 是一個把 Apache 網(wǎng)頁服務(wù)器與PHP、Perl 腳本語言及 MariaDB 數(shù)據(jù)庫集合在一起的安裝包,允許用戶可以在虛擬機上方便的建立網(wǎng)頁服務(wù)器環(huán)境。同時,系統(tǒng)采用jdk1.8 來支撐java 應(yīng)用的執(zhí)行。

2 系統(tǒng)總體設(shè)計

文件加解密管理系統(tǒng)的主要模塊包括:用戶管理模塊,文件管理模塊,文件加密模塊,文件解密模塊。其中,用戶管理模塊包括用戶注冊,登錄及權(quán)限管理;文件管理模塊包括文件上傳下載,文件crud(增刪改查),文件命名規(guī)范;文件加密模塊包括密鑰生成,對稱加密和非對稱公鑰加密;文件解密模塊包括獲取密鑰,對稱私鑰解密和非對稱私鑰解密。各模塊之間相互聯(lián)系,方便了在線管理文件加解密流程。如圖2所示。

圖1:系統(tǒng)整體設(shè)計圖

圖2:系統(tǒng)功能模塊

圖3:文件加解密流程圖

2.1 用戶管理模塊

文件加解密管理系統(tǒng)的用戶管理模塊涉及到用戶注冊,用戶登錄,及用戶的權(quán)限管理。其中用戶注冊和登錄模塊為Yii2 框架自帶功能,用戶的權(quán)限管理模塊則是通過兼容Yii2 框架的Yii2-admin插件來實現(xiàn)。Yii2 的初始訪問權(quán)限只區(qū)分了游客和管理員,如果需要擴展訪問權(quán)限,需要自己編寫代碼配合Yii2 自帶的rbac 組件去實現(xiàn)權(quán)限管理,而Yii2-admin 是將rbac 的管理可視化,只需要在可視化界面上操作就能設(shè)置好權(quán)限管理規(guī)則,并在數(shù)據(jù)庫的規(guī)則表里生成相關(guān)記錄。

2.2 文件管理模塊

文件管理模塊包含文件的上傳下載功能,文件的增刪改查功能及文件命名規(guī)范管理功能。

通過Yii2 框架里自帶的 yiiwebUploadedFile 類,再結(jié)合前端小部件和對應(yīng)的模型類,就可以快速開發(fā)好安全的文件上傳功能。

文件下載則是通過訪問文件路徑實現(xiàn)直接下載。

文件的增刪改查主要是指文件路徑的增刪改查,文件管理模塊對應(yīng)的表名為file,Yii2 框架通過gii 工具,可以為file 表創(chuàng)建對應(yīng)的模型類,控制器類及對應(yīng)的視圖文件。

文件命名主要由五個部分構(gòu)成:

單位代碼_業(yè)務(wù)代碼_版本代碼_時間戳_32 位的唯一ID

其中時間戳由年月日和日期對應(yīng)的時間戳前6 位組合而成,32 位唯一ID 則通過生成通用唯一識別碼(UUID:Universally Unique Identifier)算法得出。

UUID 生成的基礎(chǔ)原理就是采用md5 函數(shù)生成密碼字符串,然后用substr 函數(shù)在里面截取對應(yīng)8-4-4-4-12 個字符,其中每個字符是 0-9 或 a-f 范圍內(nèi)的一個十六進制的數(shù)字,這樣就可以拼出一個32 位的uuid。

2.3 文件加解密模塊

隨著時代的發(fā)展,信息安全已經(jīng)成為不容忽視的問題。單一的密碼體制越來越不能滿足信息安全領(lǐng)域的需求,混合密碼體制將成為研究的重要趨勢。數(shù)字信封是一種通過公鑰密碼算法加密并分發(fā)對稱密碼算法密鑰的混合加解密方法[3]。

文件加解密管理系統(tǒng)里也用到了數(shù)字信封技術(shù)。在對稱加密中,數(shù)據(jù)發(fā)送方將明文(原始數(shù)據(jù))和加密密鑰一起經(jīng)過特殊加密算法處理后,使其變成復(fù)雜的加密密文發(fā)送出去。接收方收到密文后,若想解讀原文,則需要使用加密密鑰及相同算法的逆算法對密文進行解密,才能使其恢復(fù)成可讀明文。在對稱加密算法中,使用的密鑰只有一個,發(fā)收信雙方都使用這個密鑰對數(shù)據(jù)進行加密和解密[4]。

對稱加密算法的優(yōu)點在于執(zhí)行速度快,缺點在于密鑰的傳輸安全及管理情況,一旦對稱加密算法所用的密鑰在傳輸過程中被盜,則傳輸信息的安全性就無法得到保障。為了解決傳輸過程中的數(shù)據(jù)安全問題,業(yè)界提出了非對稱加密算法。

非對稱加密算法中使用到兩個密鑰,一個是可以公開傳輸?shù)拿荑€,簡稱公鑰,一個是自己保存的私鑰。非對稱加密算法的基本原理是:由數(shù)據(jù)傳輸?shù)慕邮辗礁鶕?jù)特定的非對稱加密算法生成兩個密鑰,即公鑰和私鑰,然后把公鑰傳遞給數(shù)據(jù)傳輸?shù)陌l(fā)起方,數(shù)據(jù)傳輸?shù)陌l(fā)起方對要傳輸?shù)臄?shù)據(jù)用公鑰進行加密,數(shù)據(jù)接收方收到的是加密后的數(shù)據(jù),再用開始生成的私鑰對該數(shù)據(jù)進行解密,就得到了原始的裸數(shù)據(jù)。非對稱加密算法的缺點在于算法的復(fù)雜度高,從而使得加解密速度沒有對稱加密算法的執(zhí)行速度快。

數(shù)字信封技術(shù)綜合了對稱加密算法和非對稱加密算法的優(yōu)點。顧名思義,數(shù)字信封就相當于把一把鑰匙放在信封里,公開傳遞的是信封(公鑰),這樣保證了鑰匙(私鑰)的安全性。

文件加密模塊主要包括生成對稱加密需要的私鑰key1,然后對原始文件A 進行加密處理,得到對稱加密后的文件B;獲取非對稱加密所需要的公鑰C,然后對對稱加密需要的私鑰key1 進行加密,得到非對稱加密后的私鑰,即數(shù)字信封。

文件解密模塊主要包括獲取非對稱加密算法所需的私鑰D,然后對數(shù)字信封進行解密,獲取對稱加密算法所需的密鑰key1,最后對用key1 對文件B 進行解密,得到最后的原始文件A。

3 結(jié)語

根據(jù)實際工作需要,設(shè)計與實現(xiàn)了基于Yii2+springboot2 的文件加解密管理系統(tǒng),將之前需要零散手工處理的加解密工作,系統(tǒng)化集成到系統(tǒng)里,有序管理文件的上傳下載及加解密工作,極大的提升了工作效率。

用戶管理模塊和文件管理模塊采用的Yii2 框架技術(shù),使整個系統(tǒng)的架構(gòu)符合高內(nèi)聚、低耦合的設(shè)計標準。

在文件加解密方面采用數(shù)字信封技術(shù)一方面解決了私鑰傳輸過程中的安全性問題,另一方面加解密算法執(zhí)行效率也可以得到提升。采用springboot2 實現(xiàn)數(shù)字信封技術(shù),可以很好的利用java 密碼庫完備的優(yōu)勢,同時也兼顧了密碼算法的擴展性。

采用兩種成熟框架結(jié)合的開發(fā)方式可以在確保完成工作需求,保障代碼質(zhì)量的前提下極大的提升開發(fā)效率,是值得推廣的一種開發(fā)模式。

猜你喜歡
加解密私鑰加密算法
清掃機器人避障系統(tǒng)區(qū)塊鏈私鑰分片存儲方法
比特幣的安全性到底有多高
基于改進ECC 算法的網(wǎng)絡(luò)信息私鑰變換優(yōu)化方法
一種基于虛擬私鑰的OpenSSL與CSP交互方案
電子取證中常見數(shù)據(jù)加解密理論與方法研究
基于FPGA的LFSR異步加解密系統(tǒng)
基于小波變換和混沌映射的圖像加密算法
Hill加密算法的改進
對稱加密算法RC5的架構(gòu)設(shè)計與電路實現(xiàn)
基于Arnold變換和Lorenz混沌系統(tǒng)的彩色圖像加密算法
青田县| 泗水县| 南郑县| 武汉市| 汝州市| 林口县| 壶关县| 基隆市| 公安县| 黄大仙区| 都江堰市| 万全县| 始兴县| 米脂县| 巴林左旗| 新乡县| 淳化县| 山阳县| 余庆县| 河池市| 钦州市| 双桥区| 阆中市| 龙山县| 沛县| 海原县| 左贡县| 八宿县| 修水县| 长武县| 依兰县| 乐都县| 广丰县| 绥阳县| 衡水市| 垦利县| 富宁县| 门头沟区| 乌兰察布市| 舞阳县| 博乐市|