你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 计算机安全与维护
VB6.0利用BMP位图文件进行数据加密隐藏(下)
 

cheshi是自定义的过程,为了测试该BMP文件是不是包含其他的数据

Private Sub cheshi(BMPfilename As String)

'测试该BMP文件是不是包含其他的数据

Open BMPfilename For Binary Access Read As #1

 

Seek #1, 3 '第三位开始记录BMP文件的长度

Get #1, , truefree   Close #1

If truefree = FileLen(BMPfilename) Then '利用函数得到改文件的真实长度

  flag = True

 Else

   flag = False

  End If

End Sub

数据加密和隐藏开始:

Private Sub jiami(BMPfilename As String, datafilename As String, password As String)

lenpsw = Len(password)

Dim count As Integer

Dim temp As Byte

Open BMPfilename For Binary As #1

Open datafilename For Binary Access Read As #2

'移动到文件尾

Seek #1, truefree

Do While Not EOF(1)

Get #1, , temp

Loop

count = 1

Get #2, , temp

Do While Not EOF(2)

'对需要隐藏的数据先和密码进行xor操作,达到初步加密效果

temp = temp Xor Asc(Mid(password, count, 1))

count = (count Mod lenpsw) + 1

Put #1, , temp

Get #2, , temp

Loop

Close #2

Close #1

End Sub

到此数据加密隐藏完成。

2.解密并提取文件

如图2所示。


                         

2

基于判断的过程与加密过程中相识,这里不再累述,主要解密提取代码如下:

Private Sub jiemi(BMPfilename As String, datafilename As String, password As String)

Dim count As Integer

Dim temp As Byte

lenpsw = Len(password)

Open BMPfilename For Binary Access Read As #1

Open datafilename For Binary Access Write As #2

count = 1

Seek #1, truefree + 1

Get #1, , temp

Do While Not EOF(1)

temp = temp Xor Asc(Mid(password, count, 1))‘再次进行xor操作,把数据还原

count = (count Mod lenpsw) + 1

Put #2, , temp

Get #1, , temp

Loop

Close #2

Close #1

MsgBox "ok!"

End Sub

数据解密提取完成

三、结语

1.利用本方法加密过的数据文件,如果在解密的时候输入的密码不正确,提取出来的数据将是不可辨认的乱码,保护效果较好,实现也比较简单。

2.本文只简单地讨论了把数据文件挂接在BMP文件的尾部,感兴趣的朋友还可以把数据拆乱分别插入到BMP文件的中间,基本方法是一样的。对加密的方法,大家也可以采用不同的方法。

3.本方法在VB6.0Windows XP环境下编译通过,在Windows XP环境下运行,运行效果良好。

 

 

参考文献

 

1张念鲁著.VB网络编程及应用. 高等教育出版社,2002-12-01

2傅瑛著.VB程序设计. 电子工业出版社,2001
  推荐精品文章

·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录
·2023年10月目录
·2023年9月目录 
·2023年8月目录 

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089