android 资源图片加密

android 资源图片加密android中有些重要的图片资源可以选择加密,因为不管是加固还是混淆,资源文件的图片始终能被看到,加密图片步骤1. 创建java项目安作为加密图片的工具,新建一个project,在main方法里调用加密方法,加密方法里传一个路劲,这个路劲是电脑里图片的路劲publicstaticvoidmain(String[]args){//调用加密方法KMD

大家好,又见面了,我是你们的朋友全栈君。

android 中有些重要的图片资源可以选择加密,因为不管是加固还是混淆,资源文件的图片始终能被看到,

加密图片步骤

1.   创建java项目安作为加密图片的工具,新建一个project,在main方法里调用加密方法,加密方法里传一个路劲,这个路劲是电脑里图片的路劲

public static void main(String[] args){
    //调用加密方法
    KMD.encrypt("f:/image.png");
}


public class KMD {
    
    //加密后,会在原图片的路径下生成加密后的图片
    public static void encrypt(String filePath){
        byte[] tempbytes = new byte[5000];
        try {
            InputStream in = new FileInputStream(filePath);
            OutputStream out = new FileOutputStream(filePath.subSequence(0, filePath.lastIndexOf("."))+"2.png");
            while (in.read(tempbytes) != -1) {
  
  //简单的交换  byte a = tempbytes[0];
                tempbytes[0] = tempbytes[1];
                tempbytes[1] = a;
                out.write(tempbytes);//写文件  }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

2,把加密后的图片放在android assets下

android 资源图片加密
调用getImageFromAssets穿入加密后的图片,然后解密,显示
Bitmap   bitmap= getImageFromAssets(this,"jiamiguodetupian.png");
if(bitmap != null) {
   imageView.setImage(ImageSource.bitmap(bitmap));
} else {
   Log.i(TAG,"图片为空");
   System.out.println("图片为空");
}

public Bitmap getImageFromAssets(Context context, String fileName) {
    Bitmap image = null;
    AssetManager am = context.getResources().getAssets();
    try {
        InputStream is = am.open(fileName);
        byte[] buffer = new byte[1500000];//足够大  is.read(buffer);
        for(int i=0; i<buffer.length; i+= 5000){
  
  //与加密相同  byte temp = buffer[i];
            buffer[i] = buffer[i+1];
            buffer[i+1] = temp;
        }
        image = BitmapFactory.decodeByteArray(buffer, 0, buffer.length);
        if (is!=null){
            is.close();
        }

    } catch (IOException e) {
        e.printStackTrace();

    }
    return image;
}

ok ,大功告成!有不懂可以留言。。。。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/151963.html原文链接:https://javaforall.net

(0)
上一篇 2022年6月21日 上午10:00
下一篇 2022年6月21日 上午10:00


相关推荐

  • 数字信号处理–语音信号处理

    数字信号处理–语音信号处理在Matlab平台上语音信号处理

    2022年5月9日
    109
  • strncmp()函数用法及其详解

    strncmp()函数用法及其详解strncmp 函数 C 库函数 intstrncmp constchar str1 constchar str2 size tn 把 str1 和 str2 进行比较 最多比较前 n 个字节 声明 intstrncmp constchar str1 constchar str2 size tn 参数 str1 要进行比较的第一个字符串 st

    2026年3月18日
    3
  • 求助:为什么登陆不上codelf[通俗易懂]

    求助:为什么登陆不上codelf[通俗易懂]笔记本和手机都能登陆上这个网站,为什么台式电脑就打不开网页了呢?在线求助!!!

    2022年5月31日
    39
  • HttpSession的正确理解

    HttpSession的正确理解一个session就是一系列某用户和服务器间的通讯。服务器有能力分辨出不同的用户。一个session的建立是从一个用户向服务器发第一个请求开始,而以用户显式结束或session超时为结束。其工作原理是这样的:当一个用户向服务器发送第一个请求时,服务器为其建立一个session,并为此session创建一个标识号;这个用户随后的所有请求都应包括这个标识号。服务器会校对这个标识号以判断请求属于…

    2022年7月13日
    20
  • 浅谈VGGNet

    浅谈VGGNet1 VGGNet 架构 VGG16 1 输入 224x224x3 的图片 经 64 个 3×3 的卷积核作两次卷积 ReLU 卷积后的尺寸变为 224x224x642 作 maxpooling 最大化池化 池化单元尺寸为 2×2 效果为图像尺寸减半 池化后的尺寸变为 112x112x643 经 128 个 3×3 的卷积核作两次卷积 ReLU 尺寸变为 112x112x1284 作 2×2 的 maxpooling

    2026年3月26日
    2
  • spring中@transactional注解的作用(spring 事务实现原理)

    事务管理对于企业应用来说是至关重要的,即使出现异常情况,它也可以保证数据的一致性。spring支持编程式事务管理和声明式事务管理两种方式。编程式事务管理使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明式事务管理建立在

    2022年4月15日
    288

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号