python文件加密存储,python通过文件读写,复制图片
欢迎加入python讨论卧虎藏龙qq群:729683466
www.Sina.com/http://www.Sina.com/http://www.Sina.com 3358号
有些东西我不想让任何人看到
例如
一张你暗恋的女神的照片。
如果有人发现了
太尴尬了。
那又怎么样!
学会用python加密图像!
1:“Python爱好者”微信官方账号,导 语
演示文稿
代码及相关资源获取
回复“加密图片”获取源代码
选择效果
Python漂亮的西牛加密图像
?
加密前:工具
Python3.6.4,第三方库:PIL
第加密后:节
往期
此前微信官方账号发了一条关于python加密美西牛的推文。它是一个漂亮的西方黄牛加密,可以根据规则将图像的像素向后移动,打破原有的像素配置规则。它会扭曲图像。如果要解密,就把像素往前移。
但是根据群友的反应,这段代码的加密效果并不是很好。也就是说,加密后的图像还是有一个模糊的轮廓。
之前加密方法的加密效果如下图所示。
即使加密了,也能识别。没有加密,而是挂在原照片上。
用这种算法加密你女神的照片,太丢人了。
开发
然后我自己做了一个图像加密的方法。我还没决定名字。这叫做字典加密。
原理很简单!像素是介于0和0-255之间的整数。如果用映射关系来处理像素,完全可以混淆像素的排列。例如,如果图像中的像素点12对应于像素点51,则图像中所有值为12的像素点都是51。若要解密图像,请提取加密图像中的所有像素,并将其中的51个像素全部改为12个像素,以获得原始图像。
其实是用字典来处理的。
讲解
首先,在这样的“码本”(即字典)中,0-255之间的所有数字和0-255中的另一组数字(即数据)都被映射成代码。数据相当于字典的键,代码相当于字典的值。其中不能有重复的值。否则,字典密码不是一对一的。
如何生成这样的码本?只需使用以下随机数来生成代码:
importrandomimportnumpyasnpafter={ } solve _ code={ } data=[]for iinrange(0,26) 3360data。append) i) foriinrange (3360data。append)I)for iinra 1)solve _ code(k[0]=I after)I)k[0]而且,保存了这些字典之后,就变成了可以一直使用的密码本!
一:秀丽的西牛加密
以下图片如何加密?
首先,将图像读入矩阵。使用python的图像处理库函数,即PIL。
frompilomportimageim=image . open(。/test3.jpeg) (im2=np.array) im)上面三行代码将图像转换成numpy格式的矩阵,三个for循环将矩阵中的数字转换成数字。
forIinrange(0,size1[0] ) : for j in range(0) 0,size1[1] ) : for k in range(0) 0,size1[2] : new _ new
im3=image . from array(NP . uint 8)new _ array)(im3 . show)(im3 . save) flag . jpg )的完整加密代码如下:要解密代码,只需用解密后的字典替换密码本即可。
importnumpyasnpfrompilimportimageim=image . open(。/test3。JPEG’)im2=NP。array(im)size 1=im2 . shape print allow _ pickle=True)。item(slow _ code=NP . load(solve _ code . npy),allow_pickle=True)。in ranant的item(#进入加密图像print(code)new _ array=NP . zeros(size 1)k1=0 print)的循环
编剧兼导演
二:字典加密解密原理
有钱的老板可以奖励编辑。
三:生成密码本
四:真实图片加密
QQ群:729683466
感谢大家观看
扫描二维码来源
图片:pexels
百度照片
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。