Android 游戏引擎libgdx 图片简单加密解密 生成Pixmap

Android 游戏引擎libgdx 图片简单加密解密 生成Pixmap

Android的APK只要解压缩就可以得到里面的资源文件,这显得有些过于开放了。

很多时候我们发现一些厂家的产品都将资源文件进行了处理,即加密了。

接下来我们就对图片文件进行简单加密解密操作。

 

一、准备一张图片,因为是在libgdx中使用,所以长宽必须是2的幂次方。

Android 游戏引擎libgdx 图片简单加密解密 生成Pixmap_第1张图片

 

二、简单异或加密

复制代码
        String fileName = "image.jpg";//图片名称
        String key = "test";//密码

        RandomAccessFile raf = null;
        
        try {
            raf = new RandomAccessFile(fileName, "rw");

            int value = -1;
            while ((value = raf.read()) != -1) {
                long pointer = raf.getFilePointer();
                raf.seek(pointer - 1);
                raf.write(value ^ key.hashCode());
                //每个字节异或密码,请保证解密时密码前后相同
            }

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                raf.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
复制代码

 

三、加密后的图片我们将无法再预览。我们可以将图片的扩展名改成dat,进一步的混淆。

 

四、解密并显示

复制代码
public void Load(){
        String key = "test";
        InputStream is = null;
        int value = -1;
        byte[] bs = new byte[76583];
        int cx = 0;
        try {
            is = this.getAssets().open("image.dat");
            while ((value = is.read()) != -1) {
                bs[cx] = (byte) (value ^ key.hashCode());
                cx++;
            }
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                is.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        pixmap = new Pixmap(bs, 0, bs.length);
    }
复制代码

解密与加密相同,都是每字节异或密码。

byte[] bs = new byte[76583];

这里我们需要自定义内存大小,查看文件的属性,查看大小。

Android 游戏引擎libgdx 图片简单加密解密 生成Pixmap_第2张图片

 

五、查看源码 DwinterGdxDemo01

导入后请注意更改引用包

Android 游戏引擎libgdx 图片简单加密解密 生成Pixmap_第3张图片

作品发布:dwintergame.com 
个人开发盈利方案: 传送门 
本文版权归作者D.Winter和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 

你可能感兴趣的:(Android 游戏引擎libgdx 图片简单加密解密 生成Pixmap)