首页 > 编程知识 正文

图片隐写术工具,隐写术原理

时间:2023-05-06 16:47:58 阅读:137370 作者:1319

测试环境:Windows7

开发语言:MATLAB

首先,必须明确为什么要采用图像加密和隐藏术。 在生活中,我们每个人都在交换自己的秘密,图片版权和隐私的信息。 其次,图像加密和隐写原理只要掌握并实现其原理就很简单。 本文主要阐述了基于LSB (least significant bits )的图像加密技术和混沌序列混合使用的实现原理,希望对大家有所帮助。

我知道图像由很多像素值组成。 像素值的大小为0-255,为了使隐藏写入的图像b与原始图像a一致,将各像素值转换为16位二进制数,将转换后的16位二进制数的最后一位设为零,最后按顺序或者按照自己设定的算法,将自己想写的文字转换为被黑客很容易破解。 重要的机密情报就这样被解读了就不好办了。 因此,我们的真正方法是将写入的明文转换为密文写入图像,最后对加密的图像再次进行加扰,以提高信息的安全性。 这是一个大致的流程思路,一旦知道了其原理,接下来就可以开始其具体的实现步骤。 详细过程如下。

一.图像加密过程的实现:用Matlab语言读取图像像素

2 .从文件中读取要写入图像的内容,将读取的每个字符转换为十六进制(1)将“这是不可告人的秘密”的内容加密隐藏在图像中,代码截图如下:

)2)将密文转换为十六进制的截图如下。

3 .用混沌算法对获得的明文进行加密,得到密文(1)生成混沌序列数。 截图如下。

生成混沌序列数的代码

混沌序列生成的数据矩阵

(2)读取混沌序列中的数和明文的异或来生成密文

4 .将加密的密文和字符信息的长度写入图像的最低有效位(这里为什么要获取字符的长度,是因为在解密过程中使用)

5 .获取了写入前后的图像

遮住前面的照片

隐藏后期图像

6 .对比速记式加密前后的两个图,看不出有什么不同,但是到目前为止基本的加密和速记式加密7 .速记式加密后的图像加密后的图像如下所示。

加密一次

进行多次加密

二、图像解码过程图像解码过程的本质是加密的逆过程,只需获得同一个混沌序列和同一个私钥进行解码即可。 解码后获得的明文截图如下。

整个图像的写加密过程到此结束。

详细代码请参见github:https://github.com/luhong chun/image-encryption

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。