使用異或加密技術(shù)給數(shù)據(jù)庫文件加密

數(shù)據(jù)安全不僅要抵抗來自網(wǎng)絡(luò)黑客的安全威脅,還要防止來自網(wǎng)絡(luò)內(nèi)部,特別是數(shù)據(jù)庫管理員的安全威脅。而數(shù)據(jù)庫加密技術(shù)則是通過加密數(shù)據(jù)庫中數(shù)據(jù),使重要數(shù)據(jù)或敏感數(shù)據(jù)以“密文”形式存在,以保護(hù)數(shù)據(jù)不被非法人竊取、閱讀的目的。那么接下來我就給大家介紹一下異或加密技術(shù)是如何給數(shù)據(jù)庫文件加密的?

一、異或加密技術(shù)原理

1、異或是一種邏輯運(yùn)算

0 xor 0=0,0 xor 1=1

1 xor 0=1,1 xor 1=0(此處0,1都為邏輯值)

異或運(yùn)算經(jīng)常用于加密算法,原因在于這種運(yùn)算是可逆的,即:A xor B=密文,密文xor B=A(A為明文,B為密鑰)

從以上步驟可以看出異或加密技術(shù)的原理是:將一段明文文件與一組密鑰進(jìn)行異或,得到密文文件,密文文件再用同一組密鑰進(jìn)行異或運(yùn)算,就可以恢復(fù)明文,這是其它邏輯運(yùn)算不能比的。

2、 VFP程序代碼示意

下面是一段完成加密過程或解密過程的函數(shù):

Function data xor

這是一段完成異或運(yùn)算的程序,可以實(shí)現(xiàn)對(duì)一個(gè)字符串文件加密或解密。

Para strl _傳入的字符串

strpass='1234567890' 加密碼字符串,應(yīng)該設(shè)置比被strl長

lenl=len(strl) 得到被加密串的長度

str2=""

for i=1 to len 1

chr1=chr(bitxor(asc(substr(str1, i, 1)), int(val(substr(strpass,i,1)))))

str2=str2+chr1

end for

retum str2 返回異或后的數(shù)據(jù)

其中bitxor0是VFP自帶的實(shí)現(xiàn)異或運(yùn)算的函數(shù)。

調(diào)用function data_xor

? data xor(‘super’)返回結(jié)果為:rwsaw

? data_xor(‘rwsaw’)返回結(jié)果為:super

需要說明的是,被加密的數(shù)據(jù)文件先要轉(zhuǎn)成字符串,再進(jìn)行加密,加密后的數(shù)據(jù)文件也是以字符串形式存在。

二、異或加密的策略

1、增加加密的強(qiáng)度

從異或加密原理可知,這種加密技術(shù)容易實(shí)現(xiàn),非常適合采用自行研發(fā)的信息系統(tǒng)中使用,在對(duì)數(shù)據(jù)進(jìn)行異或加密之前,可以先對(duì)其進(jìn)行與其它處理,如:可以對(duì)數(shù)據(jù)進(jìn)行循環(huán)位移,之后再進(jìn)行加密,增加破解難度。

2、 只對(duì)重要或敏感數(shù)據(jù)文件加密

我們使用異或加密技術(shù),主要針對(duì)數(shù)據(jù)庫中的數(shù)據(jù),若對(duì)所有數(shù)據(jù)文件加密,勢(shì)必增加數(shù)據(jù)的處理量,數(shù)據(jù)庫訪問速度也會(huì)大大降低,因此,系統(tǒng)中可以選擇需要加密的數(shù)據(jù)庫列,以便于用戶選擇那些敏感信息進(jìn)行加密而不是全部數(shù)據(jù)文件加密。只對(duì)用戶的敏感數(shù)據(jù)加密可以提高數(shù)據(jù)庫訪問速度。這樣有利于用戶在效率與安全性之間進(jìn)行自主選擇。

3、異或加密技術(shù)的局限性

異或加密技術(shù)是強(qiáng)度極低的一種方式,除非極長的密碼,才能確保加密的有效性,但是,使密碼達(dá)到與數(shù)據(jù)一致,顯然是不可能的,因此,異或加密技術(shù)的數(shù)據(jù)長度會(huì)受到限制。由于異或加密技術(shù)的強(qiáng)度極低,因此,應(yīng)根據(jù)數(shù)據(jù)庫文件加密的保密性來決定采用什么樣的加密技術(shù),如果想獲得比較可靠的加密方法,可以采用分組交換式加密方案可取,常用的分組加密算法有DES、DIES和AES等,DES加密算法運(yùn)行速度最快,而AES-128次之。根據(jù)安全性能來說,AES加密算法宗旨在取代DES的新一代對(duì)稱加密算法,密鑰長度可以是128、192或256位,安全性能要比DES(密鑰長度只有56位)強(qiáng)得多。

對(duì)數(shù)據(jù)庫重要數(shù)據(jù)或敏感數(shù)據(jù)文件進(jìn)行適當(dāng)加密是非常必要的。異或加密技術(shù)是一種容易實(shí)現(xiàn)的技術(shù),但其加密是強(qiáng)度極低,因此,被加密的數(shù)據(jù)范圍會(huì)受到一定的限制,若想獲得比較可靠的加密,分組交換式加密方案會(huì)更加可靠。

小知識(shí)之異或加密

異或加密是一種簡單的加密算法,在破解中經(jīng)常遇到。舉個(gè)例子說明一下XOR加密算法,例如00001 xor 11110 =11110,11110 xor 11111=00001,xor異或是可以看做是不進(jìn)位的二進(jìn)制加法。這樣說來就好理解了。