首页 > 编程知识 正文

简单加密算法,加密程序

时间:2023-05-05 11:54:02 阅读:137394 作者:1158

目前,大部分安卓APP的图片资源,反编译后可以直接拿来使用。 如果不想直接反编译使用自己的图像资源,首先想到的应该是加密图像。 在这里,我写了简单加密照片的方法。 希望能对大家有所帮助。

首先是加密部分。 这里使用简单的异或来加密图像。 创建新的java project,或者直接在文本文件中编写以下代码,在命令行中执行: 代码如下所示。

span style='font-size:14px;' import java.io.File; import javax.imageio.stream.fileimageinputstream; import javax.imageio.stream.fileimageoutputstream; import javax.imageio.stream.image inputstream; import javax.imageio.stream.image output stream; publicclassencriptdemo { publicstaticfinalintxor _ const=0x 99; //键/* * * @ param args *.publicstaticvoidmain (string [ ] args ) ) fileload=newfile('/home/jade/桌面/loadesk ) fileloadd=newfile((/home/jade/桌面/loading_depr.png ); try{Encrimg(load,loaddest ); ENCRimg(loaddest,loadd ); }catch(exceptione ) {e.printStackTrace ); } publicstaticvoidencrimg (filesrc,File dest ) throws exception (imageinputstreamfis=newfileimageinputstream ) src; imageoutputstreamfos=newfileimageoutputstream; int read; while((read=fis.read ) (-1 ) ) fos.write (read ^ xor _ const ); } fos.flush (; fos.close (; fis.close (; }}/span上面的代码没有判断文件是否存在。 这个代码会自己加密文件,所以自己检查文件是否存在就可以了。 应该想得到熟悉异或的朋友,但实际上上面的encrimg(filesrc,File dest )方法既可以加密也可以解密。 在main上调用了两次,第一次用于加密,第二次用于解密。 这样就完成了加密的程序。 接下来我们来看看android的解密方法。 (上面的加密代码使用了javax.imageio.stream包中的相关类,因此缺省情况下无法在android工程中运行。 )。

将刚加密的loading.dat文件复制到android项目的assets文件夹下,然后将ImageView添加到layout中,以便在activity中执行以下代码:

span style='font-size:14px;' imageviewimg=(imageview ) findviewbyid ) r.id.img; bitmap bitmap=image adapter.read bitmap (this,' loading.dat ' ); if (位图!=null(img.setimagebitmap ) bitmap; (else ) system.out.println ) )图像为空); }/span这里调用了ImageAdapter的静态方法readBitmap。 这个方法读笔者的地方只是demo,所以没有考虑ANR等的处理。 正式项目最好将图像加载解码器部分放入独立的线程中执行。 图像适配器的代码如下所示。

span style='font-size:14px;' import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import android.content.Context; import android.graphics.Bitmap; import Android.graphics.bitmap factory; publicclassimageadapter { publicstaticbitmapreadbitmap (上下文,string filename ) } { bitmap bitmap=null; List list=new ArrayList (; try { inputstream is=context.get assets ().open(filename ); int read; while((read=is.read ) ) (-1 ) ) { read=read ^ 0X99; list.add () byte ) read; }byte[]arr=newbyte[list.size(] (); int i=0; for(byteitem3360list ) { arr[i ]=item; } bitmap=bitmap factory.decode bytearray (arr,0,list.size ) ); system.out.println(bitmap ); }catch(ioexceptione ) {e.printStackTrace ); }返回位图; }}/span笔者的方法不是最好的方法。 这里只是抛砖引玉,给需要保护自己照片资源的朋友一个简单的构想。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。