论文无忧网提供:计算机毕业论文范文|计算机毕业设计|计算机毕业论文
栏目导航 ASP Java Web .NET VB6.0 JAVA VC VF DELPHI PB 计算机网络 计算机科学与技术 PHP 安卓APP 其他 C# 代写论文
当前位置: > 计算机 > 计算机科学与技术 >

信息加密与隐藏工具(论文+程序)

4.5  解密与隐藏信息提取设计过程分析 copyright paper51.com

4.5.1   文本信息的解密 copyright paper51.com

在完成对文本文件的加密后,加密文件被保存下来,由于该文件是由原文件明文信息和Hash信息附加到尾部组合成,因此文件的长度是明文的两倍,当验证的时候,需要将两部分信息分开,并分别对两部分信息进行相应的操作。 copyright paper51.com

首先,由于整个加密文件已经加过密,应通过DeStrEncrypt()进行一次解密,因为是对称加密算法,密钥与加密时相同,都是“123456”,解密过程与加密过程进行相反操作,加密时需要对每个字符加一个位移量,则在解密时需要减去同样减去相同的位移量,该位移量同样是由函数Numeric Password()计算获得。 http://www.paper51.com

关键性代码为: paper51.com

    For i = 1 To str_len 内容来自论文无忧网 www.paper51.com

                 ch = Asc(Mid$(from. text,i,1)) http://www.paper51.com

                 If ch >= MIN_ASC And ch <= MAX_ASC Then 内容来自www.paper51.com

                         ch = ch - MIN_ASC 内容来自www.paper51.com

                         offset = Int((NUM_ASC + 1) * Rnd)

内容来自论文无忧网 www.paper51.com

                         ch = ((ch - offset) Mod NUM_ASC)

内容来自论文无忧网 www.paper51.com

                         If ch < 0 Then ch = ch + NUM_ASC http://www.paper51.com

                         ch = ch +MIN_ASC

copyright paper51.com

                         DeStrEncrypt = DeStrEncrypt & Chr$(ch) paper51.com

                 End If http://www.paper51.com

Next i http://www.paper51.com

主要计算公式如下:

copyright paper51.com

ch = ((ch -offset) Mod NUM_ASC)

内容来自www.paper51.com

当ch进行如上操作时,可能回超出规定的ASCII字符的范围,因此需要加如下的条件:

内容来自www.paper51.com

If ch < 0 Then ch= ch + NUM_ASC

paper51.com

当超出范围时,通过加一个NUM_ASC使其处在规定的ASCII字符的范围内,此时,经过该步骤之后,获得了解密后的加密文件,假设表示为Msg1,它由明文MsgA和消息摘要MsgB组成,它们之间的关系如下: copyright paper51.com

Msg1=MsgA+ MsgB

内容来自论文无忧网 www.paper51.com

分离之后,用消息摘要算法对MsgA进行同样运算,可得到另一个消息摘要MsgB’,运算关系如下: http://www.paper51.com

MsgB’= strEncrypt (MsgA,"123456") 内容来自论文无忧网 www.paper51.com

运算之后,将MsgB与MsgB’进行比较,当两者完全相同时,则说明验证成功,否则会提示文件非法。

copyright paper51.com

主要代码为: 内容来自论文无忧网 www.paper51.com

IfRadioButton1.Checked =True Then 内容来自www.paper51.com

           strtemp1 = DeStrEncrypt (RichTextBox1.Text,"123456") 内容来自论文无忧网 www.paper51.com

           str = strtemp1.Substring(halflen,halflen) copyright paper51.com

           strtemp2 = strtemp1.Substring (0,halflen) 内容来自论文无忧网 www.paper51.com

           strtemp2 = DeStrEncrypt (strtemp2,"123456")

内容来自www.paper51.com

           If String.Compare (str,strtemp2) = 0 Then

内容来自www.paper51.com

               RichTextBox1.Text =strtemp2 http://www.paper51.com

               MsgBox("验证成功!") 内容来自www.paper51.com

           Else If String.Compare (str,strtemp2)<> 0 Then

copyright paper51.com

               MsgBox("非法文件,来源不明!")

http://www.paper51.com

           End If 内容来自www.paper51.com

        EndIf

copyright paper51.com

详细流程如图4: copyright paper51.com

内容来自www.paper51.com

图4解密过程

paper51.com

4.5.2    隐藏信息的提取 paper51.com

完成对图片的信息隐藏之后,验证工作就变得相对容易,对其验证也是根据同样的原理进行,首相,必须对特殊信息进行提取,只有经过信息隐藏后的文件才包含有特殊信息,当提取出特殊信息时,就说明验证成功,否则失败,验证成功后,就应将隐藏信息显示出来,该过程是将象素的低四位值移到高四位。 内容来自论文无忧网 www.paper51.com

提取特殊信息时,只对前八个象素点进行操作验证,之前,在信息隐藏操作时,前八个象素点的低四位中依次隐藏着0至7的数字信息,验证时,顺序比较,如果包含有这八个数字,则说明是经过处理的文件,成功后,再显示隐藏图片。

paper51.com

具体算法公式为:

http://www.paper51.com

P2(x,y)=(P3(x,y)&00001111)<<4

内容来自论文无忧网 www.paper51.com

详细算法代码为:

http://www.paper51.com

If CInt ((CByte (c.R) And CByte (15))) = j + 1 And CInt ((CByte (c.G) And CByte (15))) = j + 1 And CInt ((CByte (c.B) And CByte (15))) = j + 1 Then

内容来自www.paper51.com

                   result =result + 1 内容来自www.paper51.com

               End If

内容来自www.paper51.com

           Next copyright paper51.com

           If result <> 8 Then 内容来自www.paper51.com

               MsgBox("非法文件,来源不明!") paper51.com

           Else If result = 8 Then paper51.com

               MsgBox("文件合法!单击‘确定’开始处理中....")

http://www.paper51.com

               Call proc() 内容来自www.paper51.com

           End If   

paper51.com

PrivateSub proc()

copyright paper51.com

       For j = 0 To x - 1 http://www.paper51.com

           For i = 0 To y - 1 内容来自www.paper51.com

               c = pic1.GetPixel(j,i) 内容来自论文无忧网 www.paper51.com

               a = c.A

copyright paper51.com

               rr = CInt((CByte(c.R) And CByte(15)) << 4) //颜色值的移位

copyright paper51.com

               gg = CInt((CByte(c.G) And CByte(15)) << 4)

paper51.com

               bb = CInt((CByte(c.B) And CByte(15)) << 4) 内容来自论文无忧网 www.paper51.com

               If rr < 0 Thenrr = 0

内容来自www.paper51.com

               If rr > 255 Thenrr = 255 内容来自论文无忧网 www.paper51.com

               If gg < 0 Thengg = 0 http://www.paper51.com

               If gg > 255 Thengg = 255

内容来自论文无忧网 www.paper51.com

               If bb < 0 Then bb = 0 内容来自www.paper51.com

               If bb > 255 Thenbb = 255

paper51.com

               c = c.FromArgb(a,rr,gg,bb)

内容来自www.paper51.com

               pic1.SetPixel(j,i,c)

paper51.com

           Next

内容来自论文无忧网 www.paper51.com

           PictureBox1.Refresh()

copyright paper51.com

       Next

paper51.com

       MsgBox("验证成功") copyright paper51.com

End Sub

http://www.paper51.com

算法流程如图5:

paper51.com

    

copyright paper51.com

    http://www.paper51.com

    paper51.com

    http://www.paper51.com

------分隔线----------------------------
联系方式