Matlab用图片和音频藏文件


首先,你能看出下面两幅图片有什么区别吗?

  

乍看之下,这两幅图片一模一样。但是实际上,右边的这幅图片里面隐藏了一篇奥巴马就职的演讲稿(注意:图片上传到此处存在损失,上图可能无法读取出文件)。

这个想必读者以前应该有所耳闻吧。《失控》这边巨著里面的“密码无政府状态:加密永胜”一章也提到过:


既然如此简单,为什么实现着玩一下呢?理论上一幅300*300的图片存3万左右ASCII字符没有任何问题。鉴于Matlab图像处理的强大功能,用它实现就再好不过了。

按照前面《失控》中提到的,可以将文本的每一位分插到图片的每个像素的最低位,这里我另外将文本计算有关的长度保存到第二位和第三位(当然这不是一个好办法,最好是都插入最后一位,这样对像素颜色RGB值的变化只有1,影响不至于肉眼可辨)。

读取的时候,只需要将预存数据的位提取出来变换成相应的ASCII码即可。(注:此处仅提供演示,因此是顺序插入位,用于实际加密效果不是很好,可以考虑通过PN序列或者HashArnold变换等方法进行进一步处理)。

以下是DC本人写的拙劣代码,仅供参考:

------------------------------------------------华丽的分割线----------------------------------------------------

1、将文件藏进图片:(img)  

------------------------------------------------华丽的分割线----------------------------------------------------

2、将图片中的文件解析出来:

------------------------------------------------华丽的分割线----------------------------------------------------

以下是运行后读取出来的结果:


前后图片对比


隐藏的文件


------------------------------------------------华丽的分割线----------------------------------------------------

至于音频藏数据,也很容易实现。由于Matlab音频处理工具箱只提供了wav格式音频处理的函数,想要将文件存入Mp3等音乐里,需要做些准备。

可喜的是,可以在哥伦比亚大学的LabROSA实验室(Laboratory for the Recognition and Organization of Speechand Audio)网站(http://labrosa.ee.columbia.edu/matlab/mp3read.html )找到相关函数。使用方法很简单,文件隐藏进音频的思想与图片一致,就不再赘述。

  • 1
  • 2
  • 下一页

相关内容