Matlab用图片和音频藏文件
首先,你能看出下面两幅图片有什么区别吗?

乍看之下,这两幅图片一模一样。但是实际上,右边的这幅图片里面隐藏了一篇奥巴马就职的演讲稿(注意:图片上传到此处存在损失,上图可能无法读取出文件)。
这个想必读者以前应该有所耳闻吧。《失控》这边巨著里面的“密码无政府状态:加密永胜”一章也提到过:

既然如此简单,为什么实现着玩一下呢?理论上一幅300*300的图片存3万左右ASCII字符没有任何问题。鉴于Matlab图像处理的强大功能,用它实现就再好不过了。
按照前面《失控》中提到的,可以将文本的每一位分插到图片的每个像素的最低位,这里我另外将文本计算有关的长度保存到第二位和第三位(当然这不是一个好办法,最好是都插入最后一位,这样对像素颜色RGB值的变化只有1,影响不至于肉眼可辨)。
读取的时候,只需要将预存数据的位提取出来变换成相应的ASCII码即可。(注:此处仅提供演示,因此是顺序插入位,用于实际加密效果不是很好,可以考虑通过PN序列或者Hash、Arnold变换等方法进行进一步处理)。
以下是DC本人写的拙劣代码,仅供参考:
------------------------------------------------华丽的分割线----------------------------------------------------
1、将文件藏进图片:
前后图片对比
隐藏的文件
------------------------------------------------华丽的分割线----------------------------------------------------
至于音频藏数据,也很容易实现。由于Matlab音频处理工具箱只提供了wav格式音频处理的函数,想要将文件存入Mp3等音乐里,需要做些准备。
可喜的是,可以在哥伦比亚大学的LabROSA实验室(Laboratory for the Recognition and Organization of Speechand Audio)网站(http://labrosa.ee.columbia.edu/matlab/mp3read.html )找到相关函数。使用方法很简单,文件隐藏进音频的思想与图片一致,就不再赘述。
PS: 网上搜到DCT空域隐藏和LSB时域隐藏等概念,可以参考