今天写了一个代码,主要功能是对某个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时的值不一样.写下此文,提醒自己不能想当然.
java的bufferImage异或加密jpg文件的一个有趣现象
最新推荐文章于 2022-06-15 17:55:15 发布