数据安全不仅要抵抗来自网络黑客的安全威胁,还要防止来自网络内部,特别是数据库管理员的安全威胁。而数据库加密技术则是通过加密数据库中数据,使重要数据或敏感数据以“密文”形式存在,以保护数据不被非法人窃取、阅读的目的。那么接下来我就给大家介绍一下异或加密技术是如何给数据库文件加密的?

一、异或加密技术原理

1、异或是一种逻辑运算

0 xor 0=0,0 xor 1=1

1 xor 0=1,1 xor 1=0(此处0,1都为逻辑值)

异或运算经常用于加密算法,原因在于这种运算是可逆的,即:A xor B=密文,密文xor B=A(A为明文,B为密钥)

从以上步骤可以看出异或加密技术的原理是:将一段明文文件与一组密钥进行异或,得到密文文件,密文文件再用同一组密钥进行异或运算,就可以恢复明文,这是其它逻辑运算不能比的。

2、 VFP程序代码示意

下面是一段完成加密过程或解密过程的函数:

Function data xor

这是一段完成异或运算的程序,可以实现对一个字符串文件加密或解密。

Para strl _传入的字符串

strpass='1234567890' 加密码字符串,应该设置比被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 返回异或后的数据

其中bitxor0是VFP自带的实现异或运算的函数。

调用function data_xor

? data xor(‘super’)返回结果为:rwsaw

? data_xor(‘rwsaw’)返回结果为:super

需要说明的是,被加密的数据文件先要转成字符串,再进行加密,加密后的数据文件也是以字符串形式存在。

二、异或加密的策略

1、增加加密的强度

从异或加密原理可知,这种加密技术容易实现,非常适合采用自行研发的信息系统中使用,在对数据进行异或加密之前,可以先对其进行与其它处理,如:可以对数据进行循环位移,之后再进行加密,增加破解难度。

2、 只对重要或敏感数据文件加密

我们使用异或加密技术,主要针对数据库中的数据,若对所有数据文件加密,势必增加数据的处理量,数据库访问速度也会大大降低,因此,系统中可以选择需要加密的数据库列,以便于用户选择那些敏感信息进行加密而不是全部数据文件加密。只对用户的敏感数据加密可以提高数据库访问速度。这样有利于用户在效率与安全性之间进行自主选择。

3、异或加密技术的局限性

异或加密技术是强度极低的一种方式,除非极长的密码,才能确保加密的有效性,但是,使密码达到与数据一致,显然是不可能的,因此,异或加密技术的数据长度会受到限制。由于异或加密技术的强度极低,因此,应根据数据库文件加密的保密性来决定采用什么样的加密技术,如果想获得比较可靠的加密方法,可以采用分组交换式加密方案可取,常用的分组加密算法有DES、DIES和AES等,DES加密算法运行速度最快,而AES-128次之。根据安全性能来说,AES加密算法宗旨在取代DES的新一代对称加密算法,密钥长度可以是128、192或256位,安全性能要比DES(密钥长度只有56位)强得多。

对数据库重要数据或敏感数据文件进行适当加密是非常必要的。异或加密技术是一种容易实现的技术,但其加密是强度极低,因此,被加密的数据范围会受到一定的限制,若想获得比较可靠的加密,分组交换式加密方案会更加可靠。

小知识之异或加密

异或加密是一种简单的加密算法,在破解中经常遇到。举个例子说明一下XOR加密算法,例如00001 xor 11110 =11110,11110 xor 11111=00001,xor异或是可以看做是不进位的二进制加法。这样说来就好理解了。