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 ,大功告成!有不懂可以留言。。。。


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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 举例说明随机函数的应用python_Python生成50个随机数

    举例说明随机函数的应用python_Python生成50个随机数摘要:下文讲述Python代码中seed()函数的简介说明,如下所示:seed()函数功能用于改变随机数生成器的种子,常用于其它随机函数之前运行此函数seed()函数语法seed.seed([x])———参数说明—-x:任意数字———返回值说明—-无返回值seed()函数注意事项:1.使用seed()函数需引入包random(importrandom)2.设置随…

  • 手机gif录屏软件_手机录制gif软件

    手机gif录屏软件_手机录制gif软件gif录屏手机app是一款免费专业的视频剪辑制作软件,下载gif录屏apk支持GIF动画录屏以及MP4视频录屏,通过手机录屏GIF制作软件,一键轻松进行视频编辑、视频压缩和视频拼接。软件介绍gif录屏app是一款完全免费的专业高清流畅的录屏软件,支持GIF动画录屏以及MP4视频录屏。功能强大,操作简单,用户可以轻松录屏,录屏生成GIF回味用户自动生成GIF文件;将屏幕录制到动画文件.GIF,一边录…

  • 知识图谱—知识推理综述(一)[通俗易懂]

    知识图谱—知识推理综述(一)[通俗易懂]知识图谱—知识推理综述(一)1知识推理的概念以及分类1.1知识推理的基本概念所谓的知识推理,就是在已有知识的基础之上,推断出未知的知识的过程。通过从已知的知识出发,通过已经获取的知识,从中获取到所蕴含的新的事实,或者从大量的已有的知识中进行归纳,从个体知识推广到一般性的知识。根据上面的概念的描述,我们可以知道,对于知识推理而言,其包括的内容可以分为两种,第一种是我们已经知道的,用于进行推理的已有知识,另外一种是我们运用现有的知识推导或者归纳出来的新的知识。对于知识而言,其形式是多种多样的,可以是

  • getelementbyid属性与用法[通俗易懂]

    getelementbyid属性与用法[通俗易懂]语法:oElement=document.getElementById(sID)参数:sID――必选项。字符串 (String) 。返回值:oElemen――对象 (Element) 。说明:根据指定的 id 属性值得到对象。返回 id 属性值等于 sID 的第一个对象的引用。假如对应的为一组对象,则返回该组对象中的第一个。 如果无符合条件的对象,则返回 nul

  • 你还在认为 Java 是免费的吗[通俗易懂]

    你还在认为 Java 是免费的吗[通俗易懂]在收购了Sun公司的六年后,Oracle正在大规模的加大对违反其许可证的Java客户的审查力度。越来越多的Oracle客户和合作伙伴被拉里·埃里森的团队约谈,声称他们没有遵守Java的规矩。Oracle在2010年 收购了SunMicrosystems公司 ,知情人士透露现在它的许可证管理服务(LMS)正在到处追缴付款。该数据库巨头公司目前已经在全球

  • 数据库设计工具介绍

    数据库设计工具介绍本文将从如下四个方面和您一起比较四种优秀数据库设计工具的各自优缺点。用户界面可支持的数据库数据工具售价1.DbSchema官网:https://dbschema.com/DbSchema是一种可用于复杂数据库设计和管理的可视化工具。该工具已经集成在大多数主流操作系统之中。用户界面DbSchema具有友好的用户界面,可简化数据库的设计。它能够为管理大型数据库提供友好的界面布局,以便用户更专注于数据库的特定功能。如下图所示,DbSchema界面能够让用户自由地浏览各种视图,在布局中拖放表格,

发表回复

您的电子邮箱地址不会被公开。

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