一种基于Word文档的信息隐藏方法

[09-12 17:31:54]   来源:http://www.88dzw.com  单片机学习   阅读:8994

文章摘要:Selection.MoveDown Unit:=wdLine,Count:=2Selection.MoveRight Unit:=wdCharacter,Count:=1'选择信息隐藏的位置,此处为文档的第三者'For i =1 To 8 '每次循环隐藏一位二进制位'Selection.MoveLeft Unit:=wdCharacter,Count:=1Selection.MoveRight Unit:=wdCharacter,Count:=2Selection.MoveRight Unit:=wdCharacter,Count:=2,Extend:=wdE

一种基于Word文档的信息隐藏方法,标签:单片机开发,单片机原理,单片机教程,http://www.88dzw.com

Selection.MoveDown Unit:=wdLine,Count:=2

Selection.MoveRight Unit:=wdCharacter,Count:=1

'选择信息隐藏的位置,此处为文档的第三者'

For i =1 To 8 '每次循环隐藏一位二进制位'

Selection.MoveLeft Unit:=wdCharacter,Count:=1

Selection.MoveRight Unit:=wdCharacter,Count:=2

Selection.MoveRight Unit:=wdCharacter,Count:=2,

Extend:=wdExtend

在文档中选中两个相邻的字符

With Selection.Font

ch1 = ch And m

If ch1 = m Then

.spacing = 0.1

Else

.Spacing = 0

End If

m = m /2

Eid With

'ch变量中的每一个二进制位利用位运算分别取出来,以设置文档中被选中的两个字符的间距

Next i

End Sub

上述Hide宏实现了在Word文档中隐藏一个8位的二进制串(即一个英文字符),若需要隐藏一个字符串,则只需重复上述过程。

下面是从Word文档中提取被隐藏信息的宏。

Sub Get()

Dim i As Integer

Dim ch As Byte

Dim m As Byte

Dim k As Byte

ch =0

Selection.HomeKey Unit:=wdStory

Selection.HomeDown Unit:=wdLine,Count:=2

Selection.HomeRight Unit:=wdCharacter,Count:=1

'在文档中定位到被隐藏信息的位置

m = 128

k = 0

For i =1 To 8

'每次循环提取出一个被隐藏的二进制位

Selection.HomeLeft Unit:=wdCharacter,Count:=1

Selection.HomeRight Unit:=wdCharacter,Count:=2

Selection.HomeRight Unit:=wdCharacter,Count:=2,Extend:=wdExtend

在文档中选中两个相邻的字符

With Selection.Font

If .Spacion = 0 Then

ch = ch And k

Else

ch=ch Or m

End If

k = k + m

m = m/2

End With

'将提取出的一每个二进制位利用位运算形成一个8位二进制串(即一个字符)

Next i

MsgBox (CStrl(Chr(ch)))

'利用对话框显示所提取的信息。

End Sub

上述算法给出在文档中确定位置的隐藏和提取,在实际应用也可以采用非确定的位置,如按照文件中某些特征确定隐藏位置,也可以将隐藏的位置分散到文档中的不同位置。该方法对于信息的隐藏量是比较高的,若一篇文档有5001个字符,则最多可隐藏5000个二进制位。另外,也可以采用间距变化分别为0磅、0.1磅、0.2磅与0.3磅实现四进制数位的隐藏,但这样会加大字符间距变化的幅度,可能会引起怀疑。该方法的缺点是在文档进行重新排版时,所隐藏的信息会丢失或产生错误;也正是由于这个特性,可以利用它实现Word文档中的数字水印,起到一定的产权保护作用。




上一页  [1] [2] 


Tag:单片机学习单片机开发,单片机原理,单片机教程单片机学习
分类导航
最新更新
热门排行