WEB开发网
开发学院软件教学办公软件Word 一种基于Word文档的信息隐藏方法 阅读

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

 2008-09-28 20:21:02 来源:WEB开发网   
核心提示: 在文档中选中两个相邻的字符With Selection.Fontch1 = ch And mIf ch1 = m Then.Spacing = 0.1Else.Spacing = 0End Ifm = m / 2End With′ch变量中的每一个二进制位利用位运算分别取出来,

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

  With Selection.Font
  ch1 = ch And m
  If ch1 = m Then
  .Spacing = 0.1
  Else
  .Spacing = 0
  End If
  m = m / 2
    End 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.MoveDown Unit:=wdLine, Count:=2
  Selection.MoveRight Unit:=wdCharacter, Count:=1
     ′在文档中定位到被隐藏信息的位置

  m = 128
  k = 0
  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
  If .Spacing = 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 (CStr(Chr(ch)))
     ′利用对话框显示所提取的信息。
  End Sub

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

上一页  1 2 3 

Tags:基于 Word 文档

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接