摘 要 本文在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
|