摘要:采取相應(yīng)的數(shù)據(jù)庫加密技術(shù),防止數(shù)據(jù)庫被非法瀏覽、修改、破壞,是很有必要的,可以有效地保證數(shù)據(jù)存儲(chǔ)過程中的安全問題。本文通過對(duì)VFP常用的數(shù)據(jù)庫加密技術(shù)進(jìn)行分析,討論了各自的優(yōu)缺點(diǎn)。
關(guān)鍵詞:VFP;數(shù)據(jù)庫加密技術(shù);計(jì)算機(jī)網(wǎng)絡(luò)
中圖分類號(hào):TP309.7文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1007-9599 (2013) 05-0000-02
1前言
VFP(Visual FoxPro),是Microsoft公司從Fox公司的Fox Base數(shù)據(jù)庫軟件經(jīng)過數(shù)次改良后的到的軟件,并且移植到Windows之后,用來實(shí)現(xiàn)應(yīng)用程序的開發(fā),主要用于數(shù)據(jù)管理的開發(fā)等方面的軟件。VFP是Microsoft最新推出的可視化數(shù)據(jù)庫管理系統(tǒng)平臺(tái),是功能特別強(qiáng)大的32位數(shù)據(jù)庫管理系統(tǒng)。
2數(shù)據(jù)庫加密技術(shù)原理
數(shù)據(jù)加密就是在系統(tǒng)處理過程中,將我們認(rèn)為重要的數(shù)據(jù)信息通過轉(zhuǎn)換,變成不能夠通過通常處理就能夠識(shí)別的數(shù)據(jù)信息的過程。數(shù)據(jù)庫加密原理如圖1所示,
圖1 數(shù)據(jù)庫加密技術(shù)原理圖
其目的是通過加密技術(shù)的處理,使我們認(rèn)為重要的信息不能夠被他人辨別。那么,與之對(duì)應(yīng)的,解密就是在我們需要獲得該重要信息時(shí),就要將由明文轉(zhuǎn)換來的密文翻譯為能夠直接識(shí)別的信息的過程。
在計(jì)算機(jī)技術(shù)中,還有很多常規(guī)的加密方式,與其相比,數(shù)據(jù)庫加密系統(tǒng)有其自身的特別要求。二元函數(shù)通常被用作數(shù)據(jù)庫的公開密鑰:密文=f(明文,密鑰)。當(dāng)所要使用的加密算法f()被確定后,我們只需知道明文,再將明文按照f()進(jìn)行翻譯,這樣,我們便能夠得到密文,該密文是與明文是一一對(duì)應(yīng)的。相反,解密就是將加密的過程反過來進(jìn)行,即明文=f-1(明文,密鑰)。加密算法在計(jì)算機(jī)中通常被作為數(shù)據(jù)庫加密的核心內(nèi)容,如果我們采用好的加密算法,他就應(yīng)該具備以下特點(diǎn):在加密過程中所產(chǎn)生的密文不應(yīng)該是頻率不均,而應(yīng)該是頻率平衡的,并且是隨機(jī)產(chǎn)生的,這樣就不會(huì)出現(xiàn)規(guī)律,其周期相對(duì)較長(zhǎng),也就不產(chǎn)生重復(fù),使竊密者難以通過對(duì)密文進(jìn)行頻率、重碼等特征的分析,進(jìn)而獲得需要保密的明文。
3數(shù)據(jù)庫加密系統(tǒng)的基本要求
對(duì)字段數(shù)據(jù)進(jìn)行加密。每個(gè)記錄的字段數(shù)據(jù)通常被作為加密和解密的最小粒度。如果將文件或列作為粒進(jìn)行加密,就會(huì)提高使用密鑰的頻率,由于密鑰被反復(fù)調(diào)用,在加密過程中就越容易出現(xiàn)密鑰的泄露,這無疑會(huì)降低加密系統(tǒng)工作的可靠性,由于在加密過程中反復(fù)的使用密鑰,還會(huì)無形的增加加密的時(shí)間,同樣,解密的時(shí)間也會(huì)相應(yīng)增加,這就給使用帶來了極大的不便。
由于密鑰的反復(fù)使用,會(huì)降低安全性,就需要多個(gè)密鑰對(duì)數(shù)據(jù)庫進(jìn)行加密,這樣即使丟失了幾個(gè)密鑰,只要無法獲得全部密鑰,還是不能對(duì)密文進(jìn)行翻譯,這就會(huì)增加系統(tǒng)的安全性,但是,密鑰數(shù)量的增加就要有相應(yīng)的管理措施,并對(duì)密鑰實(shí)行動(dòng)態(tài)管理。
恰當(dāng)處理加密數(shù)據(jù)類型。在進(jìn)行數(shù)據(jù)庫加密的過程中,同樣要適當(dāng)?shù)靥幚頂?shù)據(jù)類型,否則就會(huì)造成數(shù)據(jù)類型混亂,進(jìn)而引起各種錯(cuò)誤,進(jìn)而導(dǎo)致拒絕加載。在進(jìn)行加密的過程中,還需考慮存儲(chǔ)問題,數(shù)據(jù)庫加密后的文件大小不應(yīng)過多增加。
合法用戶能夠正常操作。加密系統(tǒng)在進(jìn)行數(shù)據(jù)操作,即加解密的過程中,響應(yīng)時(shí)間要盡量短,不應(yīng)超過0.1秒的延遲。
禁止非法數(shù)據(jù)拷貝。數(shù)據(jù)庫加密系統(tǒng),應(yīng)該能夠禁止非法的數(shù)據(jù)拷貝操作。
4VFP數(shù)據(jù)加密技術(shù)
4.1表級(jí)加密
(1)用隨機(jī)偽碼的方法實(shí)現(xiàn)對(duì)數(shù)據(jù)表的加密。加密函數(shù)就是對(duì)用戶密碼進(jìn)行簡(jiǎn)單處理,將原始碼通過某種手段進(jìn)行復(fù)雜化和隱蔽化處理,例如,將用戶密碼隱藏在多位的偽碼當(dāng)中,這種方法具有很好的優(yōu)點(diǎn):簡(jiǎn)單,可靠,并且不容易被破解。將由1至7位數(shù)字或字母組成的用戶密碼通過加密轉(zhuǎn)換為20位的隨機(jī)偽碼,并且在每次進(jìn)行密碼的重新設(shè)置時(shí),加密系統(tǒng)所產(chǎn)生的偽碼都不一樣,這樣就會(huì)使每次轉(zhuǎn)換的變成的偽碼是隨機(jī)的,這樣即使在數(shù)據(jù)表中進(jìn)行任何操作都不能夠進(jìn)入系統(tǒng),這就實(shí)現(xiàn)了可靠的控制密碼權(quán)限。
(2)用VFP所提供的低級(jí)文件函數(shù)實(shí)現(xiàn)加密。采用低級(jí)文件來實(shí)現(xiàn)函數(shù)加密,其方法原理為:由低級(jí)文件函數(shù)自定義首先產(chǎn)生一個(gè)文件頭,其中可包含的內(nèi)容包括:文件頭長(zhǎng)度,字段長(zhǎng)度,字段類型,字段名,密鑰等,緊接著將按文件頭對(duì)格式的規(guī)定對(duì)數(shù)據(jù)進(jìn)行加密,加密后依函數(shù)中的順序?qū)⑵鋵懭胛募T谶M(jìn)行解密時(shí),可使用CreateCurso-SQL進(jìn)入到已經(jīng)經(jīng)過低級(jí)文件函數(shù)實(shí)現(xiàn)加密的數(shù)據(jù)表中,讀取并解密,然后再創(chuàng)建新的數(shù)據(jù)表,并將數(shù)據(jù)加載進(jìn)去,然后就實(shí)現(xiàn)了解密,數(shù)據(jù)表就能夠使用了。
4.2行級(jí)加密或列級(jí)加密
如果采用行級(jí)加密時(shí),即以記錄作為基本單位進(jìn)行加密,那么在每次進(jìn)行記錄的讀寫操作時(shí)只要加密和解密一次便可完成,對(duì)于不需要訪問的記錄,就會(huì)自動(dòng)的不進(jìn)行任何操作(加密和解密)。在計(jì)算機(jī)數(shù)據(jù)庫系統(tǒng)中,行級(jí)加密技術(shù)通常被采用。行級(jí)加密的思路為:每一條記錄都有其對(duì)應(yīng)的密鑰,每一條記錄在相應(yīng)密鑰的作用下,將其全部進(jìn)行加密,并形成相應(yīng)的密文存放在數(shù)據(jù)庫文件中;在進(jìn)行數(shù)據(jù)庫的查找的過程,也要將加密過程重復(fù)一次,再按照轉(zhuǎn)換的密文進(jìn)行相應(yīng)的查找。但是,在這一過程中便存在問題,由于密文數(shù)據(jù)是不能夠產(chǎn)生和明文數(shù)據(jù)相同的算術(shù)運(yùn)算和關(guān)系運(yùn)算結(jié)果,這樣,數(shù)據(jù)庫就會(huì)有很多功能的缺失。
列級(jí)加密和行級(jí)加密情況相似,列級(jí)加密,即字段級(jí)加密,在列級(jí)加密過程中,字段中存放著以偽碼方式存在的數(shù)據(jù),常常把多隨機(jī)數(shù)加密的方法使用在這類型的加密過程中,在進(jìn)行加密的時(shí)候,就是將要加密的源碼中的每個(gè)字符都進(jìn)行轉(zhuǎn)換,并會(huì)生成另一個(gè)數(shù),然后按照三個(gè)轉(zhuǎn)換過來的字符與生成的相應(yīng)密鑰進(jìn)行結(jié)合,這樣就形成了形成四個(gè)字符,這樣就形成了偽碼,最后,將所有生成的全部字符(偽碼)組合起來,這樣就構(gòu)成了相應(yīng)的密文了。在我們需要對(duì)數(shù)據(jù)進(jìn)行操作(打開表)時(shí),就會(huì)用加密函數(shù)對(duì)原碼進(jìn)行相應(yīng)的操作,并且轉(zhuǎn)換為其所對(duì)的偽碼,只有程序才能動(dòng)態(tài)看到原碼,從表中是不能夠直接看到原碼的,具有很好的保密性。在解密時(shí)就是將加密的方式進(jìn)行逆運(yùn)算。
4.3數(shù)據(jù)項(xiàng)級(jí)(字段值級(jí))加密
數(shù)據(jù)項(xiàng)級(jí)加密雖然安全性高,靈活性好和適應(yīng)性強(qiáng)。但是加密和解密的效率卻很低,密鑰數(shù)量巨大,管理困難。不再介紹。
5結(jié)論
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,用于反面的計(jì)算機(jī)技術(shù)和正面的計(jì)算機(jī)技術(shù)同樣取得了較大的進(jìn)步。因此,人們也越來越重視數(shù)據(jù)庫加密技術(shù)在計(jì)算機(jī)系統(tǒng)中的應(yīng)用。在計(jì)算機(jī)數(shù)據(jù)庫系統(tǒng)中應(yīng)用VFP加密技術(shù)可以很好的應(yīng)對(duì)VFP中數(shù)據(jù)的安全問題,我們可以根據(jù)現(xiàn)實(shí)對(duì)于計(jì)算機(jī)數(shù)據(jù)庫的不同要求對(duì)加密方法進(jìn)行選擇。本文通過對(duì)VFP中數(shù)據(jù)庫加密技術(shù)的分析,包括原理和存在的問題,對(duì)VFP中數(shù)據(jù)庫加密技術(shù)進(jìn)行了研究,并對(duì)各種加密技術(shù)的優(yōu)缺點(diǎn)進(jìn)行了分析。以期對(duì)VFP中數(shù)據(jù)庫加密技術(shù)有所貢獻(xiàn),相信隨著技術(shù)的不斷進(jìn)步,機(jī)密技術(shù)會(huì)取得更大的進(jìn)步。
參考文獻(xiàn):
[1]鄭羽,楊春生,于江.加密與解密實(shí)戰(zhàn)入門[M].北京:電子工業(yè)出版社,2006.
[2]成培,李峰,王暢.連接池?cái)?shù)據(jù)庫訪問技術(shù)深入研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,3.
[作者簡(jiǎn)介]廖春明(1982-),男,壯族,云南富寧人,文山學(xué)院計(jì)科系助教,主要從事計(jì)算機(jī)應(yīng)用研究。
計(jì)算機(jī)光盤軟件與應(yīng)用2013年5期