| 
				 摘  要 本文在VB6.0+Windows XP环境下利用BMP位图文件为载体对Execl、Word、记事本等数据文件进行数据加密和隐藏。 
关键词 BMP,xor加密,数据隐藏 
  
一、引言 
很多人的电脑上都有一些不希望别人看到的数据文件,可是自己不在的时候,无法保证别人打开自己的文件,有的朋友使用一些软件来对文件进行加密,但面对网上层出不穷的破解软件实在不能保证不被破解出来。通过本方法,可以把重要的数据文件绑定隐藏在BMP位图文件后面,以达到隐形的目的,同时按照密码对数据文件进行加密处理,达到双向保护的目的,在实际应用中,效果良好。 
  
二、实现 
BMP文件Windows采用的图形文件格式是Windows系统内部各种图形操作的基础。其文件分四个部分:位图文件头(用来显示加密后文件大小的变化的)、位图信息头、彩色表和图像数据阵列。其中位图文件头包含了位图文件的长度。它自身的结构特性是Windows依靠次文件信息对位图文件进行操作,并不理会实际文件的长度。这样就有了用BMP文件作加密文件载体的前提条件,可以将数据文件连接到位图文件的后面。 
本例只为起到抛砖引玉的作用,所以对于数据的加密没有深入的研究,只是简单地进行xor处理。 
1.     加密隐藏 
如图1所示。 
 
 
  
图1 
Private Sub Command3_Click() 
'判断是不是没有输入数据文件 
If Text1.Text = "" Then 
   MsgBox "对不起,是不是忘了输入数据文件了??", vbCritical + vbOKOnly 
   Command1.SetFocus 
   Exit Sub 
End If 
'判断是不是忘了输入载体文件 
If Text2.Text = "" Then 
   MsgBox "对不起,是不是忘了输入BMP载体文件了??", vbCritical + vbOKOnly 
   Command2.SetFocus 
   Exit Sub 
End If 
'判断是不是忘了输入密码 
If Text3.Text = "" Then 
   MsgBox "对不起,是不是忘记输入秘密了?请确认!!", vbCritical + vbOKOnly 
   Text3.SetFocus 
   Exit Sub 
End If 
'判断是不是自己加密 
If BMPfilename = datafilename Then 
   MsgBox "对不起,载体文件不能用本身加密!", vbCritical + vbOKOnly 
   Text2.Text = "" 
   Command2.SetFocus 
   Exit Sub 
End If 
password = Text3.Text 
On Error GoTo handle: 
Open BMPfilename For Binary Access Read As #1 
Seek #1, 3  得BMP文件的真实长度 
Get #1, , truefree 
Close #1 
Call cheshi(BMPfilename) 
If flag = True Then 
   Call jiami(BMPfilename, datafilename, password) 
 MsgBox "ok" 
Else 
  MsgBox "该图片文件已经包含其他数据,请选择其他图片文件", vbCritical 
End If 
Exit Sub 
handle: 
 MsgBox "系统出现意外错误,请与供应商联系!", vbCritical + vbOKOnly 
Unload Me 
End Sub 			
				 |