當前位置:編程學習大全網 - 編程語言 - 如何利用混合進制將文本信息進行隱藏

如何利用混合進制將文本信息進行隱藏

您好,這樣的:

VBA語言是針對微軟Office文檔進行操作的語言,它可以對Office文檔的各種操作進行編程。下面給出該方法的VBA實現算法和程序的主要流程。

Sub Hide() '以下是實現信息隱藏的Word宏

Dim i As Integer

Dim ch As Byte

Dim ch1 As Byte

ch=Asc("a") ch'變量中存放需要隱藏的字符

m=128

SelectiON.HomeKey Unit:=wdSroty *

'將文檔中的插入點移到文檔首部

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文檔中的數字水印,起到壹定的產權保護作用。

  • 上一篇:小波分析在matlab中實現的具體步驟
  • 下一篇:寶貝計劃的劇情詳細介紹
  • copyright 2024編程學習大全網