导语
总想在公众号发点和信息安全相关的内容,但总觉得很多内容仿佛不适合在微信公众号里发,何况自己也没有那么专业,想来想去,感觉发个图像加密还是挺不错的~
让我们愉快地开始吧~
开发工具
Python版本:3.6.4
相关模块:
numpy模块;
pillow模块。
环境搭建
安装Python并添加到环境变量,pip安装需要的相关模块即可。
原理简介
已知Logistic函数系统方程:
当满足以下条件时:
Logistic函数工作于混沌状态,即通过系统方程产生的序列是无序不可预测的,具有较高的安全性。将其用于图像加密的方案有许多种,本人将实现其中一种较为简单的方案,即利用混沌序列对图像各点的像素值进行重排序,从而实现图像加密的效果。具体而言,即将混沌序列中的每个序列值与图像中的每个像素点一一对应。加密时,像素点的位置由其对应的序列值在整个序列中的相对大小决定;解密时,只要生成相同的混沌序列,然后根据混沌序列值将各像素点放回原位就好啦~
具体实现过程详见相关文件中的源代码。
使用方式
在cmd窗口运行的命令格式如下图所示:
其实-m代表选择加密/解密,-k代表密钥,-i则代表待处理的图像。
测试效果如下:
更多
代码截止2018-09-05测试无误。
建议使用PNG格式的图像进行测试,否则会存在图像解密后失真的现象。
○
○
Charles的皮卡丘
Pikachu~
领取专属 10元无门槛券
私享最新 技术干货