面向HTML的信息隐藏系统 (安全性与隐秘性增强版)

合集下载

信息安全概论-5 信息隐藏技术

信息安全概论-5 信息隐藏技术
信息安全概论
1
第五章 信息隐藏技术
5.1 信息隐藏的概念 5.2 隐藏信息的基本方法 5.3 数字水印 5.4 数字隐写 5.5 数字指纹
2
5.1 信息隐藏的概念
• 信息隐藏把一个待保护的秘密信息隐藏在另一个 称为载体的信息中,非授权者不知道这个普通的 载体信息中是否隐藏了其他的信息,而且即使知 道也难以提取或去除隐藏的信息。所用的载体可 以是文字、图像、声音及视频等。
• DCT变换域的基本思想是:先计算原始图像D的离 散余弦变换(DCT),然后将隐秘信息叠加到变换 域的系数上(不包括直流分量),这些系数通常为 图像的低频分量。
12
5.2.3压缩域算法
• 基于JPEG、MPEG标准的压缩域信息隐藏 系统不仅节省了大量的完全解码和重新编 码过程,而且在数字电视广播及 VOD(Video on Demand)中有很大的实 用价值。相应地,隐秘信息的检测与提取 也可直接在数据的压缩域中进行。
8
• 成功的信息隐藏通常需要满足以下技术要 求:
• 1.透明性(invisibility)或不可感知性( imperceptibility)。
• 2.鲁棒性(robustness)。 • 3.安全性(security)。 • 4.不可检测性(undetectability)。 • 5.自恢复性。 • 6.嵌入强度(信息量)。
• 按检测是否需要载体信息参与分类,可分为 非盲检测算法和盲检测算法。非盲检测算法 中隐秘信息的检测需要原始载体的参与,而 盲检测算法中隐秘 信息隐藏的概念
• 按照保护对象分类,主要分成以下几类: • (1)隐写术:目的是在不引起任何怀疑的情
况下秘密传送消息,因此它的主要要求包 括难以检测和大容量。 • (2)数字水印:它是指嵌在数字产品中的数 字信号,其目的是进行版权保护、所有权 证明、指纹和完整性保护等,因此,它的 性能要求是鲁棒性和不可感知性等。

信息隐藏概述

信息隐藏概述

信息隐藏概述
1.3 信息隐藏技术的主要分支
6. 匿名通信
匿名通信就是隐藏了信息发送者和接收者 的一种通信方式,使用的主要技术有匿名重发 和网络代理等技术。
该技术可用于电子商务、有线电话网、卫 星电话网、E-mail、Web浏览以及远程注册等, 它既适合于军用,也适合商用。此外,匿名通 信技术还可以用于电子选举和电子现金方案中, 保证选举人或者购买者的身份不被泄露。
隐写术与数字水印技术可以通用共享。
信息隐藏概述
1.3 信息隐藏技术的主要分支 3. 隐蔽信道
隐蔽信道是在计算机安全技术中,一种允 许某个进程在违反安全规则的状态中传递信息 的信道,或者是一种以允许违背合法安全策略 的方式进行操作系统进程间通信的通道。
隐蔽信道出现的根本原因在于计算机系统 的安全机制本身。
就目前的现状来看,信息隐藏技术还远不成熟, 尚缺乏系统性的理论基础和公平统一的性能测试 与评价体系。信息隐藏技术的广泛应用有赖于不 断地探索和实践。
信息隐藏概述
1.3 信息隐藏技术的主要分支 4. 阈下信道
阈下信道也叫潜信道,是指在公开信道中所建立的 一种实现隐蔽通信的信道。密码协议中的阈下信道 是指被用来传输秘密消息的各种编码体制和密码协 议中所采取的数学结构。
5. 低截获概率通信 低截获概率通信就是使信号被截获的概率降低的通 信技术。低截获概率通信技术主要包பைடு நூலகம்扩展频谱通 信技术和流星猝发通信技术。
成功的信息隐藏通常有以下特性: (1)透明性或不可感知性 (2)鲁棒性 (3)安全性 (4)不可检测性 (5)自恢复性 (6)嵌入强度(信息量)
信息隐藏概述
1.3 信息隐藏技术的主要分支
按信息隐藏技术的应用目的和载体对象不 同,信息隐藏技术可分为许多分支。

信息隐藏技术(概述,发展历史与应用)

信息隐藏技术(概述,发展历史与应用)
Pershing
sails from NY June 1. (潘兴号于6月1日从纽约启航。)
古代的隐写术——语言学的

乐谱

在音乐乐谱中隐藏消息,每个音符对应于一个字符 第二次世界大战期间,一位热情的女钢琴家,常为 联军作慰问演出,并通过电台播放自己谱写的钢琴 曲。由于联军在战场上接连遭到失败,反间谍机关 开始怀疑到这位女钢琴家,可一时又因找不到钢琴 家传递情报的手段和途径而迟迟不能决断。原来, 这位德国忠实的女间谍,从联军军官那里获得军事 情报后,就按照事先规定的密码巧妙地将其编成乐 谱,并在电台演奏时一次次公开将重要情报通过悠 扬的琴声传递出去。

在艺术作品中的隐写术

古代的隐写术——语言学的

藏头诗
钢铁投洪冶, 蝼蚁上粉墙。 阴阳无二义, 天地我中央。 芦花丛中一扁舟, 俊杰俄从此地游, 义士若能知此理, 反躬难逃可无忧。 化工何意把春催? 缘到名园花自开。 道是东风原有主, 人人不敢上花台。 黄帝示程书山行, 天籁相伴入翰林, 笑迎万卷七彩路, 翌日神州成精英
2、数字水印


数字水印:信息隐藏在民用领域的应用 数字作品的特点:无失真复制、传播, 易修改,易发表 数字作品的版权保护需要:

确定、鉴别作者的版权声明 追踪盗版 拷贝保护
2、数字水印



用于版权保护的数字水印:将版权所有者的 信息,嵌入在要保护的数字多媒体作品中, 从而防止其他团体对该作品宣称拥有版权 用于盗版跟踪的数字指纹:同一个作品被不 同用户买去,售出时不仅嵌入了版权所有者 信息,而且还嵌入了购买者信息,如果市场 上发现盗版,可以识别盗版者 用于拷贝保护的数字水印:水印与作品的使 用工具相结合(如软硬件播放器等),使得 盗版的作品无法使用

引入不确定性的信息隐藏系统安全模型

引入不确定性的信息隐藏系统安全模型

l 信 息 隐 藏 系统 的 基 本 模 型 口
信 息 隐 藏 系 统 基 本 模 型 如 图 1所 示 。其 中 cv r 用 于 隐藏 数 据 的 载 体 , 以是 文本 数 据 、 oe 是 可 图像 文 件 或 语 音 文 件 等 ;mb是 需 要 隐 藏 传 送 的 e 秘 密 信 息 , 过 隐藏 函 数 ( 法 ) 嵌 入 到 c vr 通 算 o e 中 ;e k y为 信 息 隐 藏 算 法 使 用 的 参 数 ;tg se o为 信 息 隐 藏 的结果 输 出 , 是 一个 表 面 看起 来 和 cv r 它 o e
定 一个 信 息 隐藏 系 统本 身 安全 性 , 大 限度 地 降低 攻 击 者 探 测 到 隐藏 秘 密可 能 性 的 最
理论 依 据 。


词 : 息 隐藏 ;安全 模 型 ;不 确定 性 ;网络传 输 信
文 章 编 号 : N1 - 9 7 G3 2 0 ) 30 5 — 3 C 13 8 / ( 0 2 0 — 0 50
图 1 信 息 隐 藏 系统 模 型
数据 隐藏 过程 可描 述 为 :
se o f ( o e ,e t g — E c v r mb,k y e)
的, 正成 为 信息 隐 藏理 论研 究 中 的一 个 重 要课 题 。
加入 认证 机 制 能够 有 效地 阻 止攻 击 者在 探 测 到隐 藏 秘 密 存 在 时 对 系统 的篡 改 和 删 除[ , 引 入 不 2 而 ] 确 定 性 则 可 以增 强 系 统 的 隐 藏 性 , 大 限 度 地 降 最
完 全 相 同 的隐秘 对 象 , se o中包 含 了 e b 在 tg r ; n
为 还原 函数 , 于还 原 数据 得 到 en 用 rb*, 同时 产 生

信息隐藏技术_实验报告(3篇)

信息隐藏技术_实验报告(3篇)

第1篇一、实验目的1. 了解信息隐藏技术的基本原理和实现方法。

2. 掌握信息隐藏技术在图像、音频和视频等数字媒体中的应用。

3. 通过实验验证信息隐藏技术的有效性和安全性。

二、实验环境1. 操作系统:Windows 102. 编程语言:Python3. 库:OpenCV、scikit-image、numpy、matplotlib三、实验内容1. 图像信息隐藏2. 音频信息隐藏3. 视频信息隐藏四、实验步骤1. 图像信息隐藏(1)选择一幅图像作为宿主图像,并选择一幅图像作为水印图像。

(2)将水印图像转换为二值图像。

(3)对宿主图像进行分块处理,将每个块转换为二值图像。

(4)根据密钥对水印图像进行置乱,提高安全性。

(5)将置乱后的水印图像嵌入到宿主图像的对应块中。

(6)提取水印图像,并与原始水印图像进行对比。

2. 音频信息隐藏(1)选择一段音频作为宿主音频,并选择一段音频作为水印音频。

(2)对宿主音频和水印音频进行分帧处理。

(3)根据密钥对水印音频进行置乱,提高安全性。

(4)将置乱后的水印音频嵌入到宿主音频的对应帧中。

(5)提取水印音频,并与原始水印音频进行对比。

3. 视频信息隐藏(1)选择一段视频作为宿主视频,并选择一段视频作为水印视频。

(2)对宿主视频和水印视频进行帧提取。

(3)根据密钥对水印视频进行置乱,提高安全性。

(4)将置乱后的水印视频嵌入到宿主视频的对应帧中。

(5)提取水印视频,并与原始水印视频进行对比。

五、实验结果与分析1. 图像信息隐藏实验结果表明,嵌入水印后的图像与原始图像在视觉效果上几乎没有差异,水印的嵌入效果良好。

同时,提取的水印图像与原始水印图像完全一致,证明了信息隐藏技术的有效性。

2. 音频信息隐藏实验结果表明,嵌入水印后的音频与原始音频在音质上几乎没有差异,水印的嵌入效果良好。

同时,提取的水印音频与原始水印音频完全一致,证明了信息隐藏技术的有效性。

3. 视频信息隐藏实验结果表明,嵌入水印后的视频与原始视频在视觉效果上几乎没有差异,水印的嵌入效果良好。

介绍7种HTML加密方式

介绍7种HTML加密方式

本文一共介绍了七种方法:一:最简单的加密解密二:转义字符""的妙用三:使用Microsoft出品的脚本编码器Script Encoder来进行编码(自创简单解码)四:任意添加NUL空字符(十六进制00H)(自创)五:无用内容混乱以及换行空格TAB大法六:自写解密函数法七:错误的利用(自创)在做网页时(其实是网页木马呵呵),最让人烦恼的是自己辛辛苦苦写出来的客户端IE 运行的JA V ASCRIPT代码常常被别人轻易的拷贝,实在让自己的心里有点不是滋味,要知道自己写点东西也挺累的......^*^但我们也应该清楚地认识到因为JA V ASCRIPT代码是在IE中解释执行,要想绝对的保密是不可能的,我们要做的就是尽可能的增大拷贝者复制的难度,让他知难而退(但愿~!~),下面我结合自己这几年来的实践,及个人研究的心得,和大家一起来探讨一下网页中JA V ASCRIPT代码的加密解密技术。

以加密下面的JA V ASCRIPT代码为例:以下是代码片段:<SCRIPT LANGUAGE="JavaScript">alert("黑客防线");</SCRIPT>一:最简单的加密解密大家对于JA V ASCRIPT函数escape()和unescape()想必是比较了解啦(很多网页加密在用它们),分别是编码和解码字符串,比如例子代码用escape()函数加密后变为如下格式:以下是代码片段:alert%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B如何?还看的懂吗?当然其中的ASCII字符"alert"并没有被加密,如果愿意我们可以写点JA V ASCRIPT代码重新把它加密如下:以下是代码片段:%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3B呵呵!如何?这次是完全都加密了!当然,这样加密后的代码是不能直接运行的,幸好还有eval(codeString)可用,这个函数的作用就是检查JavaScript代码并执行,必选项codeString 参数是包含有效JavaScript 代码的字符串值,加上上面的解码unescape(),加密后的结果如下:以下是代码片段:<SCRIPT LANGUAGE="JavaScript">varcode=unescape("%61%6C%65%72%74%28%22%u9ED1%u5BA2%u9632%u7EBF%22%29%3 B");eval(code)</SCRIPT>是不是很简单?不要高兴,解密也就同样的简单,解密代码都摆给别人啦(unescape())!呵呵二:转义字符""的妙用大家可能对转义字符""不太熟悉,但对于JavaScript提供了一些特殊字符如:n (换行)、r (回车)、' (单引号)等应该是有所了解的吧?其实""后面还可以跟八进制或十六进制的数字,如字符"a"则可以表示为:"141"或"x61"(注意是小写字符"x"),至于双字节字符如汉字"黑"则仅能用十六进制表示为"u9ED1"(注意是小写字符"u"),其中字符"u"表示是双字节字符,根据这个原理例子代码则可以表示为:八进制转义字符串如下:以下是代码片段:<SCRIPT LANGUAGE="JavaScript">eval("1411541451621645042u9ED1u5BA2u9632u7EBF425173")</SCRIPT>十六进制转义字符串如下:以下是代码片段:<SCRIPT LANGUAGE="JavaScript">eval("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")</SCRIPT>这次没有了解码函数,因为JavaScript执行时会自行转换,同样解码也是很简单如下:以下是代码片段:<SCRIPT LANGUAGE="JavaScript">alert("x61x6Cx65x72x74x28x22u9ED1u5BA2u9632u7EBFx22x29x3B")</SCRIPT>就会弹出对话框告诉你解密后的结果!三:使用Microsoft出品的脚本编码器Script Encoder来进行编码工具的使用就不多介绍啦!我是直接使用JavaScript调用控件Scripting.Encoder完成的编码!代码如下:以下是代码片段:<SCRIPT LANGUAGE="JavaScript">var Senc=new ActiveXObject("Scripting.Encoder");var code='<SCRIPT LANGUAGE="JavaScript">rnalert("黑客防线");rn</SCRIPT>';var Encode=Senc.EncodeScriptFile(".htm",code,0,"");alert(Encode);</SCRIPT>编码后的结果如下:以下是代码片段:<SCRIPT LANGUAGE="JScript.Encode">#@~^FgAAAA==@#@&ls DD`J黑客防线r#p@#@&FgMAAA==^#~@</SCRIPT>够难看懂得吧?但相应的解密工具早已出来,而且连解密网页都有!因为其解密网页代码过多,我就不多说拉!给大家介绍一下我独创的解密代码,如下:以下是代码片段:<SCRIPT LANGUAGE="JScript.Encode">function decode()alert(decode.toString());</SCRIPT>咋样?够简单吧?它是原理是:编码后的代码运行前IE会先对其进行解码,如果我们先把加密的代码放入一个自定义函数如上面的decode()中,然后对自定义函数decode调用toString()方法,得到的将是解码后的代码!如果你觉得这样编码得到的代码LANGUAGE属性是JScript.Encode,很容易让人识破,那么还有一个几乎不为人知的window对象的方法execScript(),其原形为:window.execScript( sExpression, sLanguage )参数:sExpression:必选项。

信息隐藏

信息隐藏

第一章1 什么是信息隐藏信息隐藏是把一个有意义的信息隐藏在另一个称为载体C(cover)的信息中得到隐藏载体(Stego Cover)S,多用的载体可以是文字,图像,声音及视频等。

2 信息隐藏与密码技术的区别密码技术主要是研究如何将机密信息进行特殊的编码,以形成不可识别的密文进行传递;而信息隐藏则主要研究如何将某一机密信息隐藏于另一公开的信息中,然后透过公开信息的传输来传递机密信息。

3 信息隐藏技术的分类①按载体类型分:包括基于文本,图像,声音和视频的信息隐藏技术②按密钥分:若嵌入和提取采用相同密钥,则称为对称隐藏算法,否则称为公钥隐藏算法③按嵌入域分:主要可分空域(或时域)方法和变换域方法④按提取要求分:若在提取隐藏信息是不需要利用原始载体C,则称为盲隐藏:否则称为非盲隐藏,目前主要采用的是盲隐藏技术。

⑤按保护对象分:主要可分为隐写术和水印技术4 隐写术与数字水印技术的区别①隐写术的目的是在不引起任何怀疑的情况下秘密传送消息,因此它的主要要求是不被检测到和大容量等。

②数字水印是指嵌在数字产品中的数字信号,可以是图像,文字,符号,数字等一切可以作为标记和标志的信息,其目的是进行版权保护、所有权证明、指纹和完整性保护等,因此它的要求是鲁棒性和不可感知性等。

5 信息隐藏技术的特点①透明性invisibility 也叫隐蔽性②鲁棒性robustness 是指不因图像文件的某种改动而导致隐藏信息丢失的能力③不可检测性undetectability 指隐藏载体和原始载体具有一致的特性④安全性security 指隐藏算法有较强的抗攻击能力⑤自恢复性:由于经过一系列操作或变换后,可能会使原图产生较大的破坏,如果只从留下的片段数据仍能恢复隐藏信号,而且恢复过程不需要宿主信号,则可称为所谓的自恢复性⑥对称性:通常信息的隐藏和提取过程具有对称性⑦可纠错性:为了保证隐藏信息的完整性,使其在经过各种操作和变换后仍能很好地恢复,通常采用纠错编码方法6 图 1.3 信息隐藏和提取系统的模型解释隐藏过程:首先对消息M可以做预处理,这样形成消息M’,为加强整个系统的安全性,在预处理过程中也可以使用密钥来控制,然后用一个隐藏嵌入算法和密钥K1把与处理后的消息M’隐藏到载体C中,从而得到隐藏载体S提取过程:使用提取算法和密钥K2从隐蔽载体S中提取消息M’,然后使用相应的解密或扩频解调等解预处理方法由M’恢复出真正的消息M7 信息隐藏算法的空域算法和频域算法空域算法:是将信息嵌入到随机选择的图像点中最不重要的像素位(LSB)上,可保证嵌的信息是不可见的。

信息隐藏技术的挑战与未来发展趋势(四)

信息隐藏技术的挑战与未来发展趋势(四)

信息隐藏技术的挑战与未来发展趋势在当今数字化时代,随着信息的无处不在和快速传播,信息安全问题成为了一个关乎个人隐私和商业竞争力的重要议题。

为了保障信息的机密性和完整性,信息隐藏技术应运而生。

本文将探讨信息隐藏技术面临的挑战,并展望其未来的发展趋势。

1. 隐写术与数字水印技术隐写术和数字水印技术是信息隐藏技术的两大主要分支。

隐写术是一种将秘密信息嵌入到不引起怀疑的载体中的方法,而数字水印技术则是将信息嵌入到数字媒体中,用于对数字内容进行认证和版权保护。

然而,随着技术的进步和社会对信息安全的日益重视,提出了更多的挑战。

例如,隐写术的挑战之一是面对复杂的攻击手段,如针对隐写术的检测算法的发展。

随着隐写术的普及和攻防技术的进步,如何在保证信息安全的前提下,不对合法用户造成不必要的麻烦,成为了隐写术研究的重要方向之一。

2. 隐写术的应用挑战在如今的信息社会,隐写术有广泛的应用。

隐写术在军事领域的应用可以加强国家军事情报的保密性。

在商业界,隐写术可以用于保护商业机密和隐私。

然而,随着隐写术的不断发展,也面临着一系列挑战。

首先,如何在大规模数据传输和存储的背景下保证隐写术的效果和速度成为了一个挑战。

在处理海量数据时,如何快速且精确地嵌入和提取秘密信息成为了研究的重点。

其次,随着多媒体技术的发展,隐写术也面临着跨媒体的挑战。

传统的隐写术主要针对文本和图像等单一媒体,而随着音频和视频等多媒体形式的普及,如何在不同媒体之间实现信息的隐写与提取成为了一个新的挑战。

3. 数字水印技术的应用挑战数字水印技术在版权保护和内容认证方面有着广泛的应用。

然而,数字水印技术仍面临着一些挑战。

首先,如何保证数字水印的鲁棒性和安全性是一个重要的挑战。

面对各种攻击手段,如图像处理、压缩和噪声添加等,数字水印技术需要具备足够的鲁棒性以确保信息的完整性和可靠性。

其次,如何平衡版权保护和用户隐私是数字水印技术需要面对的又一挑战。

数字水印技术依赖于对数字内容的修改,这可能涉及到用户隐私的泄露。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

网络安全综合设计 课题名称:面向HTML的信息隐藏系统 专业班级:信安11-1 指导教师: 苏兆品 姓 名:朱航宇 学 号:20112878 一. 问题描述: 摘要:本程序采用B/S架构,信息隐藏者与信息提取者采用同一套代码即可完成信息的隐藏和提取。通过仔细分析HTML标签的各种性质,提出了一种基于HTML的隐藏信息的常用方法的改进版方法(该方法的安全性颇高)。该方法具有隐藏容量高、隐蔽性和安全性较好,使得在满足容量的前提下,尽量提高隐蔽性和安全性。 1.1 HTML文件结构简介

HTMLHEAD/HEADBODY/BODY/HTML 超文本文件不同于一般的纯文本文件,它是由标签和数据两部分组成。标签是用于控制数据显示格式和效果的,由浏览器解析执行的命令,相当于程序的指令;数据即是文件中包含的能够在浏览器上显示出来的文字、图片和动画等多媒

BR/HTML——/HTML

1.2 基于HTML文件的信息隐藏方法 根据超文本文件的结构便知道,在超文本文件中隐藏信息主要有两种策略,即在数据元素中隐藏信息和在标签中隐藏信息。在数据元素中隐藏信息的方法依赖于数据的类型是文字、图像、声音、脚本语言程序等而不同。如果元素类型是文本的话,则可应用基于普通纯文本的隐藏方法,如替换法。标签虽然是纯文本,但由于是程序指令,有固定的诸多语法规则和约束,不能随便照搬基于普通纯文本的隐藏方法,而是需要特殊考虑。标签只是控制数据在浏览器上的表现形式,

目前已提出的基于超文本文件的隐藏方法有: ① /HTMLTab键隐藏信息,插入一个空格代表0,插入一个Tab代表1。像著名的水印软件Wbstego、Stegano、Invisible Secret等都是利用这种方法。之所以可以这样隐藏信息,是因为浏览器会对HTML文件中多余的空格忽略掉,从而插入空格或Tab后不改变显示的结果。可以通过连续插入任意多个符号使得隐藏的容量可以任意大,这是其优点;其缺点是每插入一个字节的信息,文件大小需增加八个字节;另外,虽然隐藏信息后的文件浏览的结果不会改变,用记事本这样的编辑软件打开也不容易看出差别(但仔细看还是能看出这些不必要的空白符号的存在),但是当文件以二进制格式打开时其多余的空格符号一览无遗,同时,这种方法也经不起“网页减肥茶”之类的软件处理。 故本程序也采用这种方法,但是为了提高安全性,加强本程序所隐藏信息之后被攻击者破解的能力,我又在现有的常规的方法的基础上加以改进,运用了伪随机序列产生器产生的随机数的序列不变的特性(只要所给种子相同即可,这里的种子就是本程序的秘钥,不可泄露),使随机数产生器产生1—10之间的随机数(考虑到嵌入信息量的大小与所要隐藏信息安全性被破解大小的程度,随机数产生的范围在1-10之间较为合适),将所要隐藏的信息转换成0,1序列之后,0,1分别代表空格和TAB键,并且该序列是按照随机数产生器的序列进行隐藏的,故只要破解者拿不到秘钥(种子),破解者则绝对不可能通过任何转换器得到我所要隐藏的信息。 ② 改标记名称字符的大小写,用大写表示1,小写表示0来隐藏信息。但此方法缺点颇多,信息隐藏量不大且隐蔽性不强,故本程序没有采用此方法。智能扫描出

二. 基本要求:

本程序完成了面向HTML的信息隐藏系统所要求的基本功能,并提高安全性,加强本程序所隐藏信息之后被攻击者破解的能力,运用了伪随机序列产生器产生的随机数的序列不变的特性(只要所给种子相同即可,这里的种子就是本程序的秘钥,不可泄露),使随机数产生器产生1—10之间的随机数(考虑到嵌入信息量的大小与所要隐藏信息安全性被破解大小的程度,随机数产生的范围在1-10之间较为合适),将所要隐藏的信息转换成0,1序列之后,0,1分别代表空格和TAB键,并且该序列是按照随机数产生器的序列进行隐藏的,故只要破解者拿不到秘钥(种子),破解者则绝对不可能通过任何转换器得到我所要隐藏的信息。 但本程序座位课程设计,由于时间的有限原因,只完成了,由全部Ansi码表组成的全部任意组合字符序列,若稍加改进则可将本程序改进为可将unicode字符集和声音,图片的可投入市场运行的程序(java具有可以执行强的的特点),因为原理没变,都是最后对0,1序列的处理。

三. 测试数据:

Zhuhangyu20112878 We will be gather in the school ground at 10:00. 四. 算法思想: 本程序首先对所要隐藏的HTML网页导入并进行评估该HTML文件最多可隐藏的信息量反馈给隐藏着,由隐藏者在程序内输入想要隐藏的信息,既可手动输入,也可调入本地文件,用户见面十分友好与智能化。隐藏的具体方法是:由程序智能扫描出该文件每一行有多少空格以及每行文本之后最大填充量,再有程序对所用程序对所要隐藏信息进行智能分析,排版确定出最隐蔽的每行嵌入量,将所要隐藏的字符转化为0,1二进制序列,使用伪随机数产生器,将隐藏信息的0,1序列转化为空格与tab键,并按照伪随机序列的顺序进行依次嵌入,例如A的anci码为45对应的二进制序列为:101101,伪随机序列为:856219,则嵌入的方式为: Tab键,隔八个空格在迁入一个空格(此空格载有信息量),在隔开5个空格嵌入tab键,在隔开6个空格再嵌入一个tab键,以此类推,不再详述。解密时只需按照伪随机序列依次提取空格与TAB字符转化为二进制序列,再转化为字符即可得到隐藏的信息。

五. 模块划分:

本程序采用面向对象的java语言(java在网络编程中属于无冕之王),运用软件工程中的敏捷程序快速开发的思维,具有良好的架构:  该模块主要用于界面的布局以及一些界面用户输入的逻辑控制与安全性控制: (省略具体见工程附件)  该文件用于HTML以及隐藏文件的IO流: package com.zhuhangyu55.www.file;

import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException;

import com.zhuhangyu55.www.embed.Embed; import com.zhuhangyu55.www.select.Select;

public class ReadFile { /** * 定义一个静态函数,该函数主要完成 * 1.读取想要隐藏的信息HTML文件 * 2.将所要隐藏的信息写入隐藏后的HTMl文件中 * @param inPath * @param outPath * @param hideInformation */ public static int inout( String inPath, String outPath, int needOriginalFileLine, String secert){ int n = linesInOriginalFile(inPath); int inStrLength = secert.length(); if(n >= inStrLength){ try { BufferedReader input = new BufferedReader(new FileReader(inPath)); BufferedWriter output = new BufferedWriter(new FileWriter(outPath,false)); boolean c; char [] inchar = new char[inStrLength]; secert.getChars(0, inStrLength, inchar, 0); String secretSplite = null; for(int i = 0;i <= inStrLength -1;i++ ){ secretSplite = Character.toString(inchar[i]); Embed embed = new Embed(secretSplite); String hideInformation = embed.toEmbed(); String str = input.readLine(); str = str + hideInformation ; output.write(str); output.newLine(); } String str = null; while((str =input.readLine())!= null){ output.write(str); output.newLine(); } output.flush(); output.close(); input.close(); } catch ( IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return 0; }else{ System.out.println("所加信息量超过HTML文件的承载量"); return 1; }

} /** * 该函数完成从载有秘密信息的HTML文件中提取出所要的秘密信息 * @param hidingPath */ public static String selectInformationFromHidingHTML(String hidingPath,int hidingFileLength){ String originalStr = ""; try { BufferedReader selectHidingInformation = new BufferedReader(new FileReader(hidingPath)); for(int j = 0;j <= hidingFileLength - 1;j++){ String hidingStr = selectHidingInformation.readLine(); System.out.println("hidingStr-------->"+hidingStr); int i = hidingStr.length(); String hiding =hidingStr.substring((i - 7), i); Select select = new Select(hiding); originalStr =originalStr + select.toSelect(); } System.out.println("originalStr---------->" + originalStr);

相关文档
最新文档