java的bufferImage异或加密jpg文件的一个有趣现象

来源:互联网 发布:c语言class怎么用 编辑:程序博客网 时间:2024/06/06 15:40

今天写了一个代码,主要功能是对某个jpg文件的像素进行简单的加密然后再解密.加密算法是先取出RGB值然后和一个秘钥进行异或运算.解密时同样用异或.核心代码如下
int color1 = parent.getRGB(x, y);
int color2 = encryptColor(color1);
m_enImage.setRGB(i, j, color2);
int color3 = m_enImage.getRGB(i, j);
结果发现color2和color3的值不一样,3个color的值分别为
color1=-789517
color2=-305683061,color3=-3693173.
分析了下原因,估计是加密之后的颜色值不是一个合法的值,被bufferimage类内部进行了转化.
因此导致getRGB和setRGB时的值不一样.写下此文,提醒自己不能想当然.

0 1
原创粉丝点击