★图片隐藏信息的用途先来说说信息隐藏的目的。俺大致总结了一下,信息隐藏可以用于如下几种场合。 (涉及敏感内容,此处省略191字) ◇传递加密信息最后,图片还可以用来隐藏加密的信息。关于加密的用途及重要性,俺在“文件加密的扫盲介绍 ”中,已经强调过加密性。用图片来隐藏加密信息,除了具有加密的效果,还具有很大的欺骗性——因为外人难以知道一张图片是否包含有加密信息。 ★准备工作——先压缩 下面,俺会介绍几种不同的隐藏方式。在动手之前,先说一下准备工作——把要隐藏得文件先用压缩工具(比如 7zip 或 WinRAR)压缩一下。 ★尾部追加法先介绍最简单的一种方法。 ◇技术原理顾名思义,"尾部追加法"就是把要隐藏的文件追加到图片尾部。这种方法不会破坏图片原有的任何数据,因此,图片看起来和原来一模一样。 ◇隐藏信息的步骤 隐藏的过程很简单,用 Windows 内置的文件拷贝命令,即可完成。假设你的图片文件叫 A.JPG,需要隐藏的压缩文件叫 B.ZIP,那你只需要执行如下命令,就可以把两个文件合并成一个新文件。 ◇提取信息的步骤由于你追加的是压缩文件,提取的时候就简单了——只要用压缩工具打开 C.JPG,就可以直接看到压缩包里面的内容了。 ◇优点1、 ◇缺点1、 ★内容覆盖法说完尾部追加的办法,再来介绍内容覆盖的办法。 ◇技术原理 通常,图片文件都有包含2部分:文件头和数据区。而"内容覆盖法",就是把要隐藏的文件,直接覆盖 到图片文件的数据区 的尾部 。比方说,某图片有100K,其中文件头占1K,那么,数据区就是99K。也就是说,最多只能隐藏99K的文件。 ◇隐藏信息的步骤 用这个招数来隐藏信息,稍微有点麻烦,需要借助一些小工具。对于这种简单的活计,俺通常用Python脚本来搞定。以下是俺写的一个简单 Python 脚本。你的电脑中如果有Python环境,可以直接拿这个脚本去用。 import sys def embed(container_file, data_file, output_file) : container = open(container_file, "rb").read() data = open(data_file, "rb").read() if len(data)+1024 >= len(container) : print "Not enough space to save", data_file else : f = open(output_file, "wb") f.write(container[ : len(container)-len(data)]) f.write(data) f.close() if "__main__" == __name__ : try : if len(sys.argv) == 4 : embed(sys.argv[1], sys.argv[2], sys.argv[3]) else : print "Usage:" print sys.argv[0], "container data output" except Exception,err : print err - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 另外,没学过 Python 的同学,如果有兴趣,可以看看俺之前写的系列帖子——为什么俺推荐Python? ◇提取信息的步骤和前一种方法类似。如果你覆盖的是压缩文件,提取的时候,可以用压缩工具打开图片,就可以直接看到压缩包里面的内容了。 ◇优点1、 ◇缺点1、 ★隐写法最后,来介绍一种最复杂,但是也最隐蔽的方法——隐写术。 ◇技术原理 此方法会涉及较深奥的技术领域,俺也就知道个大概。通俗地说:如果把图片的某个像素的颜色,进行微小的调整,肉眼是看不出来的;因此,专门的软件,利用某些高深的算法,就可以在变化的像素中隐藏信息。 ◇隐藏息/提取信息的步骤 使用这种方法,你需要用专门的工具来进行信息的隐藏和提取。在进行隐藏时,你除了指定图片文件和被隐藏的文件,还需要设置一个密码。隐写工具会把你的隐藏文件先加密,然后再进行隐写;提取的时候,需要用同一款隐写工具进行提取,并输入同样的密码,才能提取出来。 ◇相关工具 下面介绍几款工具,大伙儿可以根据自己喜好,挑选一个试试看。
◇优点1、 ◇缺点1、 ★结尾刚才介绍的几个招数,除了可以用于图片文件,也可以用在其它的多媒体文件中(比如:音频文件、视频文件)。有兴趣的网友,可以自个儿研究一下。 |
|