图片加密
来源:互联网 发布:如何提升淘宝店铺等级 编辑:程序博客网 时间:2024/04/28 13:58
一、图片概述
每种图片都有自己的文件格式和压缩方式;文件格式主要由文件头和文件域组成。压缩方式有很多种如PNG格式的图片采用调色板或者行程编码方式的进行压缩。PNG采用无损压缩,jpg则采用有损压缩的方式进行压缩等等。
二、图像加密种类
1、置乱加密:有RGB平移置乱、HENON置乱、混沌置乱等;
2、灰度加密:DES加密、HILL加密、LOGISTIC加密、ECA加密等;
3、混合加密:复合混沌加密、baker加密、位平面加密等;
4、频域加密:DCT加密、HAAR加密等;
这些加密算法有的在时域中进行加密,有的却在频域中进行加密。主要原理是让图片中的事物轮廓变得不可辨识,并不一定是在频域中进行加密就比在时域中加密性能好。
三、一个例子
LOGISTIC加密,为什么举这个例子,是由于这是公司首先的方案,且容易说明。该加密算法的思路是1、生成一个在一定范围之内的数据序列;2、根据数据序列进行颜色位置的对调或者是颜色数值的修改。这个数据序列两个特点就是1、序列长度是图片像素长度和宽度的积;2、序列中数据的范围是0到1之间,且不重复;这样使得数据归一化很容易,如归一化到0-255、0-W*H等区域后数据不出现重样;废话少说上代码。
public static void docrypto(String map, String key, int mode, int[] pixels,int width,int height) { //开始 long start = System.nanoTime(); //获取参数和序列 int N_0 = 200; String[] params = key.split(" "); double r = Float.parseFloat(params[0]); double x_0 = Float.parseFloat(params[1]); double x_N = r*x_0*(1-x_0); for(int i = 0; i < N_0; i++) x_N = r*x_N*(1-x_N); double[] ax = new double[width * height]; if(ax.length == 0) return; for(int i = 0; i < width * height; i++) ax[i] = x_N = r*x_N*(1-x_N); //位置置换 if(mode == Crypto.DECRYPT) { for(int y = height-1; y >=0 ; y--) { for(int x = width-1; x >=0; x--) { int t_n = Math.floor(ax[y * width + x] * height * width); int x_new = t_n % width; int y_new = t_n / width; int Color1 = pixels[y_new*width+x_new]; int Color2 = pixels[y*width+x]; Color1^=Color2; Color2^=Color1; Color1^=Color2; pixels[y_new*width+x_new] = Color1; pixels[y*width+x] = Color2; } } } else { for(int y = 0; y < height; y++) { for(int x = 0; x < width; x++) { int t_n = Math.floor(ax[y * width + x] * height * width); int x_new = t_n % width; int y_new = t_n / width; int Color1 = pixels[y_new*width+x_new]; int Color2 = pixels[y*width+x]; Color1^=Color2; Color2^=Color1; Color1^=Color2; pixels[y_new*width+x_new] = Color1; pixels[y*width+x] = Color2; } } } ax =null; //结束 long stop = System.nanoTime(); Log.d(Crypto.TAG,"use time : " + (stop - start)); }
0 0
- 图片加密
- 图片加密文件
- 图片地址加密
- java 图片加密
- 图片加密解密程序
- 简单图片加密
- 图片rar 加密文件
- TexturePacker 图片加密
- androidandengine图片加密
- TexturePacker 图片加密
- TexturePacker 图片加密
- TexturePacker 图片加密
- TexturePacker 图片加密
- CocoStudio图片资源加密
- base64加密图片读写
- 王立平--图片加密
- cocos2dx 图片资源加密
- TexturePacker 图片加密
- 20150722 CSS3学习总结(上)
- python初学小结4
- Qt浅谈之三十二二维码条形码解析
- Linux初学笔记
- Android : 等待view加载完成后执行操作
- 图片加密
- hdu 4396 More lumber is required(最短路)
- C#导出Word总结
- 大团队开发中的单点
- C++学习笔记——类和对象(二)
- SVN switch 用法详解
- DesiredCapabilities内容详解
- 深入探讨 Java 类加载器
- Android 调用系统图片裁剪(解决“无法加载。”问题)