Android的加密/解密的问题(AES) [英] Android encryption/decryption issue (AES)

查看:174
本文介绍了Android的加密/解密的问题(AES)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要一点点帮助here.So基本上我不得不在Android.I'm图像中的机器人编程新的AES加密/解密的考验,这就是为什么我的一个朋友给我怎样的例子做到这一点,但问题是,当我运行20-30秒后,喜欢它崩溃的样品和我真的不知道什么是happening.So谁能请看code,告诉我问题出在哪里。样品code需要做到这一点:加密和解密相同的图像,并显示我的信息,需要多长时间来加密和解密反正在image.Thanks日志

code:

 包com.cryptooo.lol;进口java.io.ByteArrayOutputStream中;
进口java.security.SecureRandom中;
进口javax.crypto.Cipher中;
进口javax.crypto.KeyGenerator;
进口javax.crypto.SecretKey;
进口javax.crypto.spec.SecretKeySpec;
进口android.app.Activity;
进口android.graphics.Bitmap;
进口android.graphics.BitmapFactory;
进口android.os.Bundle;公共类SimpleCryptoActivity延伸活动{    @覆盖
    公共无效的onCreate(捆绑savedInstanceState){
        super.onCreate(savedInstanceState);
        的setContentView(R.layout.main);
        新的Thread(){
            公共无效的run(){
                位图BM = BitmapFactory.de codeResource(getResources(),R.drawable.shit);
                ByteArrayOutputStream BAOS =新ByteArrayOutputStream();
                bm.com preSS(Bitmap.Com pressFormat.PNG,100,BAOS); // BM是位图对象
                字节[] B = baos.toByteArray();                尝试{
                字节[] keyStart =MARTIN_123_MARTIN_123.getBytes();
                的KeyGenerator kgen = KeyGenerator.getInstance(AES);
                SecureRandom的SR = SecureRandom.getInstance(SHA1PRNG);
                sr.setSeed(keyStart);
                kgen.init(128,SR); // 192和256位可能无法使用
                SecretKey的SKEY = kgen.generateKey();
                字节[]键= skey.getEn codeD();                //加密
                字节[]的EncryptedData =加密(键,B);
                //解密
                长启动= System.currentTimeMillis的()/ 1000L;
                字节[] = decryptedData解密(密钥的EncryptedData);
                长端= System.currentTimeMillis的()/ 1000L;
                android.util.Log.d(TEST,时代+将String.valueOf(年底启动));
                }
                赶上(例外五){
                    e.fillInStackTrace();
                }
            }            私人字节[]加密(字节[]生,字节[]清)抛出异常{
                SecretKeySpec skeySpec =新SecretKeySpec(生,AES);
                密密码= Cipher.getInstance(AES);
                cipher.init(Cipher.ENCRYPT_MODE,skeySpec);
                字节[] =加密cipher.doFinal(清晰);
                返回加密;
            }            私人字节[]解密(字节[]生,字节[]加密)抛出异常{
                SecretKeySpec skeySpec =新SecretKeySpec(生,AES);
                密密码= Cipher.getInstance(AES);
                cipher.init(Cipher.DECRYPT_MODE,skeySpec);
                        字节[]解密= cipher.doFinal(加密);
            返回解密;
            }
        }。开始();
    }}

和这里是LogCat中:

 九月七日至25日:53:01.243:DEBUG / AndroidRuntime(624):>>>>>>>>>>> >>> AndroidRuntime START<<<<<<<<<<<<<<
九月7日至25日:53:01.253:DEBUG / AndroidRuntime(624):CheckJNI为ON
九月7日至25日:53:01.463:DEBUG / AndroidRuntime(624):---注册本地函数---
九月7日至25日:53:01.843:DEBUG / DDM堆(624):GOT功能列表请求
九月7日至25日:53:02.234:DEBUG / PackageParser(52):扫描包:/data/app/vmdl26130.tmp
九月7日至25日:53:02.364:信息/软件包管理系统(52):删除非系统包:com.cryptooo.lol
九月7日至25日:53:02.373:DEBUG /软件包管理系统(52):删除包com.cryptooo.lol
九月7日至25日:53:02.373:DEBUG /软件包管理系统(52):活动:com.cryptooo.lol.SimpleCryptoActivity
九月7日至25日:53:02.464:DEBUG /软件包管理系统(52):扫描包com.cryptooo.lol
九月7日至25日:53:02.464:信息/软件包管理系统(52):/data/app/vmdl26130.tmp更改;拆包
九月7日至25日:53:02.484:DEBUG / INSTALLD(32):DexInv:--- BEGIN/data/app/vmdl26130.tmp'---
九月7日至25日:53:02.713:DEBUG / dalvikvm(630):DexOpt:负载44ms,27ms验证,1ms的选择
九月7日至25日:53:02.723:DEBUG / INSTALLD(32):DexInv:--- END/data/app/vmdl26130.tmp(成功)---
九月7日至25日:53:02.723:DEBUG /软件包管理系统(52):活动:com.cryptooo.lol.SimpleCryptoActivity
九月7日至25日:53:02.745:DEBUG / ActivityManager(52):卸载过程com.cryptooo.lol
九月7日至25日:53:02.833:信息/ INSTALLD(32):移动/data/dalvik-cache/data@app@vmdl26130.tmp@classes.dex - > /data/dalvik-cache/data@app@com.cryptooo.lol.apk@classes.dex
九月7日至25日:53:02.843:DEBUG /软件包管理系统(52):新包安装在/data/app/com.cryptooo.lol.apk
九月7日至25日:53:02.973:DEBUG / AndroidRuntime(624):关闭VM
九月7日至25日:53:02.973:DEBUG / dalvikvm(624):DestroyJavaVM等待非守护线程退出
九月7日至25日:53:02.985:DEBUG / dalvikvm(624):DestroyJavaVM关闭VM下来
九月7日至25日:53:02.985:DEBUG / dalvikvm(624):HeapWorker线程关闭
九月7日至25日:53:02.985:DEBUG / dalvikvm(624):HeapWorker线程关闭
九月7日至25日:53:02.985:DEBUG / JDWP(624):JDWP关停净...
九月7日至25日:53:02.985:信息/ dalvikvm(624):调试器分离;对象注册了1项
九月7日至25日:53:02.985:DEBUG / dalvikvm(624):VM清理
九月7日至25日:53:03.004:DEBUG / ActivityManager(52):卸载过程com.cryptooo.lol
九月7日至25日:53:03.024:DEBUG / dalvikvm(624):用于LinearAlloc为0x0的5242880(11%)623916
九月7日至25日:53:03.024:ERROR / AndroidRuntime(624):错误:线程附加失败
九月7日至25日:53:03.223:WARN /的ResourceType(52):资源不包含包号资源0x7f0700e5
九月7日至25日:53:03.235:WARN /的ResourceType(52):资源不包含包号资源0x7f020031
九月7日至25日:53:03.235:WARN /的ResourceType(52):资源不包含包号资源0x7f020030
九月7日至25日:53:03.235:WARN /的ResourceType(52):资源不包含包号资源0x7f050000
九月7日至25日:53:03.284:WARN /的ResourceType(52):资源不包含包号资源0x7f060000
九月7日至25日:53:03.284:WARN /的ResourceType(52):资源不包含包号资源0x7f060001
九月7日至25日:53:03.473:DEBUG / dalvikvm(98):GC释放149对象/在244ms 7384字节
九月7日至25日:53:03.583:WARN / dalvikvm(52):主题ID = 15:暂停上旋#0主题ID = 21(H = 1324960)
九月7日至25日:53:03.593:WARN / dalvikvm(52):倾倒状态:过程 - 52
九月7日至25日:53:03.593:信息/ dalvikvm(52):android.server.ServerThreadPRIO = 5 TID = 15 RUNNABLE
九月7日至25日:53:03.593:信息/ dalvikvm(52):|组=主SCOUNT = 0 dsCount = 0 S = N = OBJ自我0x44c017e0 = 0x147d30
九月7日至25日:53:03.593:信息/ dalvikvm(52):| sysTid = 61 =好的附表-2 = 0/0 = CGRP默认手柄= 1306264
九月7日至25日:53:03.593:信息/ dalvikvm(52):在java.lang.Runtime.gc(本机方法)
九月7日至25日:53:03.593:信息/ dalvikvm(52):在com.android.internal.os.BinderInternal.forceGc(BinderInternal.java:83)
九月7日至25日:53:03.593:信息/ dalvikvm(52):在android.app.ActivityThread.doGcIfNeeded(ActivityThread.java:2296)
九月7日至25日:53:03.593:信息/ dalvikvm(52):在android.app.ActivityThread $ GcIdler.queueIdle(ActivityThread.java:2010)
九月7日至25日:53:03.593:信息/ dalvikvm(52):在android.os.MessageQueue.next(MessageQueue.java:116)
九月7日至25日:53:03.593:信息/ dalvikvm(52):在android.os.Looper.loop(Looper.java:110)
九月7日至25日:53:03.593:信息/ dalvikvm(52):在com.android.server.ServerThread.run(SystemServer.java:428)
九月7日至25日:53:03.605:信息/ dalvikvm(52):软件包管理系统PRIO = 5 TID = 21 RUNNABLE
九月7日至25日:53:03.605:信息/ dalvikvm(52):|组=主SCOUNT = 1 dsCount = 0 S = N = OBJ自我0x44c37b10 = 0x11fb40
九月7日至25日:53:03.605:信息/ dalvikvm(52):| sysTid = 67 =好的附表10 = 0/0 = CGRP手柄bg_non_interactive = 1324960
九月7日至25日:53:03.695:信息/ dalvikvm(52):在com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:~12017)
九月7日至25日:53:03.695:信息/ dalvikvm(52):在com.android.server.PackageManagerService.sendPackageBroadcast(PackageManagerService.java:3662)
九月7日至25日:53:03.695:信息/ dalvikvm(52):在com.android.server.PackageManagerService.access $ 1400(PackageManagerService.java:109)
九月7日至25日:53:03.695:信息/ dalvikvm(52):在com.android.server.PackageManagerService$PackageRemovedInfo.sendBroadcast(PackageManagerService.java:4533)
九月7日至25日:53:03.695:信息/ dalvikvm(52):在com.android.server.PackageManagerService $ 5.run(PackageManagerService.java:3792)
九月7日至25日:53:03.695:信息/ dalvikvm(52):在android.os.Handler.handleCallback(Handler.java:587)
九月7日至25日:53:03.695:信息/ dalvikvm(52):在android.os.Handler.dispatchMessage(Handler.java:92)
九月7日至25日:53:03.695:信息/ dalvikvm(52):在android.os.Looper.loop(Looper.java:123)
九月7日至25日:53:03.695:信息/ dalvikvm(52):在android.os.HandlerThread.run(HandlerThread.java:60)
九月7日至25日:53:03.714:WARN / dalvikvm(52):主题ID = 15:在373毫秒暂停解析旋
九月7日至25日:53:03.984:DEBUG / dalvikvm(52):GC释放22016对象/ 1235352字节643ms
07-25 09:53:04.064:调试/ AndroidRuntime(635):GT;>>>>>>>>>>>>> AndroidRuntime START<<<<<<<<<<<<<<
九月7日至25日:53:04.083:DEBUG / AndroidRuntime(635):CheckJNI为ON
九月7日至25日:53:04.404:DEBUG / AndroidRuntime(635):---注册本地函数---
九月7日至25日:53:04.905:WARN /的ResourceType(52):资源不包含包号资源0x7f0700e5
九月7日至25日:53:04.905:WARN /的ResourceType(52):资源不包含包号资源0x7f020031
九月7日至25日:53:04.905:WARN /的ResourceType(52):资源不包含包号资源0x7f020030
九月7日至25日:53:04.905:WARN /的ResourceType(52):资源不包含包号资源0x7f050000
九月7日至25日:53:05.013:WARN /的ResourceType(52):资源不包含包号资源0x7f060000
九月7日至25日:53:05.034:WARN /的ResourceType(52):资源不包含包号资源0x7f060001
九月7日至25日:53:05.064:DEBUG / DDM堆(635):GOT功能列表请求
九月7日至25日:53:05.824:DEBUG / dalvikvm(52):GC释放4805对象/在480ms 259312字节
九月7日至25日:53:05.933:DEBUG / ActivityManager(52):卸载过程com.cryptooo.lol
九月7日至25日:53:05.933:信息/ ActivityManager(52):启动活动:意向{行动= android.intent.action.MAIN猫= [android.intent.category.LAUNCHER] FLG = 0x10000000的CMP = com.cryptooo。笑/ .SimpleCryptoActivity}
九月7日至25日:53:05.984:DEBUG / AndroidRuntime(635):关闭VM
九月7日至25日:53:05.984:DEBUG / dalvikvm(635):DestroyJavaVM等待非守护线程退出
九月7日至25日:53:05.993:DEBUG / dalvikvm(635):DestroyJavaVM关闭VM下来
九月7日至25日:53:05.993:DEBUG / dalvikvm(635):HeapWorker线程关闭
九月7日至25日:53:06.003:DEBUG / dalvikvm(635):HeapWorker线程关闭
九月7日至25日:53:06.003:DEBUG / JDWP(635):JDWP关停净...
九月7日至25日:53:06.003:信息/ dalvikvm(635):调试器分离;对象注册了1项
九月7日至25日:53:06.003:DEBUG / dalvikvm(635):VM清理
九月7日至25日:53:06.043:DEBUG / dalvikvm(635):用于LinearAlloc为0x0的5242880(12%)639500
九月7日至25日:53:06.074:ERROR / AndroidRuntime(635):错误:线程附加失败
九月7日至25日:53:06.114:信息/ ActivityManager(52):启动PROC com.cryptooo.lol的活动com.cryptooo.lol/.SimpleCryptoActivity:PID = 643 UID = 10038导报= {}
九月7日至25日:53:06.344:DEBUG / DDM堆(643):GOT功能列表请求
九月7日至25日:53:06.484:WARN / ActivityThread(643):应用com.cryptooo.lol正在等待调试器端口8100 ...
九月7日至25日:53:06.513:信息/的System.out(643):发送WAIT块
九月7日至25日:53:06.584:信息/ dalvikvm(643):调试器是活跃
九月7日至25日:53:06.723:信息/的System.out(643):调试器连接
九月7日至25日:53:06.723:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:06.924:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:07.133:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:07.333:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:07.533:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:07.574:DEBUG / dalvikvm(119):GC释放10191对象/在4140ms 487632字节
九月7日至25日:53:07.734:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:07.937:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:08.204:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:08.414:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:08.644:信息/的System.out(643):等待调试器来解决...
九月7日至25日:53:08.854:信息/的System.out(643):调试先后落户(1465)
九月7日至25日:53:09.053:ERROR / gralloc(52):[注销]处理0x1338a8仍处于锁定状态(状态= 40000001)
九月7日至25日:53:09.473:DEBUG / dalvikvm(643):GC释放650对象/在159ms 52080字节
九月7日至25日:53:09.993:信息/ ActivityManager(52):显示活动com.cryptooo.lol/.SimpleCryptoActivity:4007毫秒(共4007毫秒)
九月7日至25日:53:13.174:DEBUG / dalvikvm(643):GC释放73的对象/在73ms 93640字节
九月7日至25日:53:18.924:DEBUG / dalvikvm(264):GC释放43的对象/在3859ms 2024字节
九月7日至25日:53:21.714:DEBUG / dalvikvm(98):GC释放2725对象/在1649ms 159280字节
九月7日至25日:53:22.123:DEBUG / dalvikvm(643):GC释放126对象/在69ms 900328字节
九月7日至25日:53:22.154:信息/ dalvikvm堆(643):成长堆(frag的情况下),以12.648MB为2092136字节分配
九月7日至25日:53:22.335:DEBUG / dalvikvm(643):GC释放41的对象/在176ms 1592字节
九月7日至25日:53:30.224:DEBUG / dalvikvm(643):GC释放3个对象/ 1042080字节70ms的
九月7日至25日:53:30.294:信息/ dalvikvm堆(643):成长堆(frag的情况下),以15.651MB为4192360字节分配
九月7日至25日:53:30.474:DEBUG / dalvikvm(643):GC释放对象0/0字节172ms
九月7日至25日:53:36.184:DEBUG / dalvikvm(643):GC释放4个对象/ 2096320字节75ms
九月7日至25日:53:36.214:信息/ dalvikvm堆(643):成长堆(frag的情况下),以16.091MB为2557851字节分配
九月7日至25日:53:36.413:DEBUG / dalvikvm(643):GC释放对象0/0字节的200ms
九月7日至25日:53:36.543:DEBUG / dalvikvm(643):GC释放54的对象/在73ms 2936个字节
九月7日至25日:53:36.583:信息/ dalvikvm堆(643):成长堆(frag的情况下),以18.537MB为2557856字节分配
九月7日至25日:53:36.766:DEBUG / dalvikvm(643):GC释放对象0/0字节180ms的


解决方案

关于加载加密图像:
您可以使用 /资产文件夹,在您的工作空间在同级别比 / RES 。然后,你把里面的文件。比方说,它被称为myfile.enc。您应该使用 AssetManager 来检索文件:

  AssetManager AM = activity.getAssets();
    InputStream为= am.open(myfile.enc);

通过InputStream的,你可以把它写入 ByteArrayOutputStream ,然后得到的字节数,或者你可以把它传递给一个 CipherInputstream 不是调用 Cipher.doFinal 。这是,如果你有一个比较大的资源去的方式。但是,对于你的小测试,我认为字节的版本是最简单的。

要得到位图的事情工作,我也把它的资产文件夹下,然后得到的相同方法的字节数。该文件夹可绘通常是你要在GUI中使用的图像,因此您可以使用自己的ID上R.java

I need a little help here.So basically I have to make a test of AES encryption/decryption of an image in Android.I'm new in android programming and that's why a friend of mine give me an example of how to do it, but the problem is that when I run the sample it crashes after like 20-30 seconds and I'm not really sure what's happening.So can anyone please look at the code and tell me where is the problem.The sample code needs to do this : Encrypt and Decrypt the same image and show me a log with info, how long it takes to encrypt and decrypt the image.Thanks anyway!

Code :

    package com.cryptooo.lol;

import java.io.ByteArrayOutputStream;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;

public class SimpleCryptoActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        new Thread() {
            public void run(){
                Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.shit);
                ByteArrayOutputStream baos = new ByteArrayOutputStream();  
                bm.compress(Bitmap.CompressFormat.PNG, 100, baos); // bm is the bitmap object   
                byte[] b = baos.toByteArray();  

                try {
                byte[] keyStart = "MARTIN_123_MARTIN_123".getBytes();
                KeyGenerator kgen = KeyGenerator.getInstance("AES");
                SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
                sr.setSeed(keyStart);
                kgen.init(128, sr); // 192 and 256 bits may not be available
                SecretKey skey = kgen.generateKey();
                byte[] key = skey.getEncoded();    

                // encrypt
                byte[] encryptedData = encrypt(key,b);
                // decrypt
                long start = System.currentTimeMillis()/1000L;
                byte[] decryptedData = decrypt(key,encryptedData);
                long end = System.currentTimeMillis()/1000L;
                android.util.Log.d("TEST","Time "+ String.valueOf(end-start));
                }
                catch(Exception e){
                    e.fillInStackTrace();
                }
            }

            private byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
                SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
                Cipher cipher = Cipher.getInstance("AES");
                cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
                byte[] encrypted = cipher.doFinal(clear);
                return encrypted;
            }

            private byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
                SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
                Cipher cipher = Cipher.getInstance("AES");
                cipher.init(Cipher.DECRYPT_MODE, skeySpec);
                        byte[] decrypted = cipher.doFinal(encrypted);
            return decrypted;
            }
        }.start(); 
    } 

}

and here is the LogCat :

07-25 09:53:01.243: DEBUG/AndroidRuntime(624): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
07-25 09:53:01.253: DEBUG/AndroidRuntime(624): CheckJNI is ON
07-25 09:53:01.463: DEBUG/AndroidRuntime(624): --- registering native functions ---
07-25 09:53:01.843: DEBUG/ddm-heap(624): Got feature list request
07-25 09:53:02.234: DEBUG/PackageParser(52): Scanning package: /data/app/vmdl26130.tmp
07-25 09:53:02.364: INFO/PackageManager(52): Removing non-system package:com.cryptooo.lol
07-25 09:53:02.373: DEBUG/PackageManager(52): Removing package com.cryptooo.lol
07-25 09:53:02.373: DEBUG/PackageManager(52):   Activities: com.cryptooo.lol.SimpleCryptoActivity
07-25 09:53:02.464: DEBUG/PackageManager(52): Scanning package com.cryptooo.lol
07-25 09:53:02.464: INFO/PackageManager(52): /data/app/vmdl26130.tmp changed; unpacking
07-25 09:53:02.484: DEBUG/installd(32): DexInv: --- BEGIN '/data/app/vmdl26130.tmp' ---
07-25 09:53:02.713: DEBUG/dalvikvm(630): DexOpt: load 44ms, verify 27ms, opt 1ms
07-25 09:53:02.723: DEBUG/installd(32): DexInv: --- END '/data/app/vmdl26130.tmp' (success) ---
07-25 09:53:02.723: DEBUG/PackageManager(52):   Activities: com.cryptooo.lol.SimpleCryptoActivity
07-25 09:53:02.745: DEBUG/ActivityManager(52): Uninstalling process com.cryptooo.lol
07-25 09:53:02.833: INFO/installd(32): move /data/dalvik-cache/data@app@vmdl26130.tmp@classes.dex -> /data/dalvik-cache/data@app@com.cryptooo.lol.apk@classes.dex
07-25 09:53:02.843: DEBUG/PackageManager(52): New package installed in /data/app/com.cryptooo.lol.apk
07-25 09:53:02.973: DEBUG/AndroidRuntime(624): Shutting down VM
07-25 09:53:02.973: DEBUG/dalvikvm(624): DestroyJavaVM waiting for non-daemon threads to exit
07-25 09:53:02.985: DEBUG/dalvikvm(624): DestroyJavaVM shutting VM down
07-25 09:53:02.985: DEBUG/dalvikvm(624): HeapWorker thread shutting down
07-25 09:53:02.985: DEBUG/dalvikvm(624): HeapWorker thread has shut down
07-25 09:53:02.985: DEBUG/jdwp(624): JDWP shutting down net...
07-25 09:53:02.985: INFO/dalvikvm(624): Debugger has detached; object registry had 1 entries
07-25 09:53:02.985: DEBUG/dalvikvm(624): VM cleaning up
07-25 09:53:03.004: DEBUG/ActivityManager(52): Uninstalling process com.cryptooo.lol
07-25 09:53:03.024: DEBUG/dalvikvm(624): LinearAlloc 0x0 used 623916 of 5242880 (11%)
07-25 09:53:03.024: ERROR/AndroidRuntime(624): ERROR: thread attach failed
07-25 09:53:03.223: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f0700e5
07-25 09:53:03.235: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f020031
07-25 09:53:03.235: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f020030
07-25 09:53:03.235: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f050000
07-25 09:53:03.284: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f060000
07-25 09:53:03.284: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f060001
07-25 09:53:03.473: DEBUG/dalvikvm(98): GC freed 149 objects / 7384 bytes in 244ms
07-25 09:53:03.583: WARN/dalvikvm(52): threadid=15: spin on suspend #0 threadid=21 (h=1324960)
07-25 09:53:03.593: WARN/dalvikvm(52): dumping state: process - 52
07-25 09:53:03.593: INFO/dalvikvm(52): "android.server.ServerThread" prio=5 tid=15 RUNNABLE
07-25 09:53:03.593: INFO/dalvikvm(52):   | group="main" sCount=0 dsCount=0 s=N obj=0x44c017e0 self=0x147d30
07-25 09:53:03.593: INFO/dalvikvm(52):   | sysTid=61 nice=-2 sched=0/0 cgrp=default handle=1306264
07-25 09:53:03.593: INFO/dalvikvm(52):   at java.lang.Runtime.gc(Native Method)
07-25 09:53:03.593: INFO/dalvikvm(52):   at com.android.internal.os.BinderInternal.forceGc(BinderInternal.java:83)
07-25 09:53:03.593: INFO/dalvikvm(52):   at android.app.ActivityThread.doGcIfNeeded(ActivityThread.java:2296)
07-25 09:53:03.593: INFO/dalvikvm(52):   at android.app.ActivityThread$GcIdler.queueIdle(ActivityThread.java:2010)
07-25 09:53:03.593: INFO/dalvikvm(52):   at android.os.MessageQueue.next(MessageQueue.java:116)
07-25 09:53:03.593: INFO/dalvikvm(52):   at android.os.Looper.loop(Looper.java:110)
07-25 09:53:03.593: INFO/dalvikvm(52):   at com.android.server.ServerThread.run(SystemServer.java:428)
07-25 09:53:03.605: INFO/dalvikvm(52): "PackageManager" prio=5 tid=21 RUNNABLE
07-25 09:53:03.605: INFO/dalvikvm(52):   | group="main" sCount=1 dsCount=0 s=N obj=0x44c37b10 self=0x11fb40
07-25 09:53:03.605: INFO/dalvikvm(52):   | sysTid=67 nice=10 sched=0/0 cgrp=bg_non_interactive handle=1324960
07-25 09:53:03.695: INFO/dalvikvm(52):   at com.android.server.am.ActivityManagerService.broadcastIntent(ActivityManagerService.java:~12017)
07-25 09:53:03.695: INFO/dalvikvm(52):   at com.android.server.PackageManagerService.sendPackageBroadcast(PackageManagerService.java:3662)
07-25 09:53:03.695: INFO/dalvikvm(52):   at com.android.server.PackageManagerService.access$1400(PackageManagerService.java:109)
07-25 09:53:03.695: INFO/dalvikvm(52):   at com.android.server.PackageManagerService$PackageRemovedInfo.sendBroadcast(PackageManagerService.java:4533)
07-25 09:53:03.695: INFO/dalvikvm(52):   at com.android.server.PackageManagerService$5.run(PackageManagerService.java:3792)
07-25 09:53:03.695: INFO/dalvikvm(52):   at android.os.Handler.handleCallback(Handler.java:587)
07-25 09:53:03.695: INFO/dalvikvm(52):   at android.os.Handler.dispatchMessage(Handler.java:92)
07-25 09:53:03.695: INFO/dalvikvm(52):   at android.os.Looper.loop(Looper.java:123)
07-25 09:53:03.695: INFO/dalvikvm(52):   at android.os.HandlerThread.run(HandlerThread.java:60)
07-25 09:53:03.714: WARN/dalvikvm(52): threadid=15: spin on suspend resolved in 373 msec
07-25 09:53:03.984: DEBUG/dalvikvm(52): GC freed 22016 objects / 1235352 bytes in 643ms
07-25 09:53:04.064: DEBUG/AndroidRuntime(635): >>>>>>>>>>>>>> AndroidRuntime START <<<<<<<<<<<<<<
07-25 09:53:04.083: DEBUG/AndroidRuntime(635): CheckJNI is ON
07-25 09:53:04.404: DEBUG/AndroidRuntime(635): --- registering native functions ---
07-25 09:53:04.905: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f0700e5
07-25 09:53:04.905: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f020031
07-25 09:53:04.905: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f020030
07-25 09:53:04.905: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f050000
07-25 09:53:05.013: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f060000
07-25 09:53:05.034: WARN/ResourceType(52): Resources don't contain package for resource number 0x7f060001
07-25 09:53:05.064: DEBUG/ddm-heap(635): Got feature list request
07-25 09:53:05.824: DEBUG/dalvikvm(52): GC freed 4805 objects / 259312 bytes in 480ms
07-25 09:53:05.933: DEBUG/ActivityManager(52): Uninstalling process com.cryptooo.lol
07-25 09:53:05.933: INFO/ActivityManager(52): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.cryptooo.lol/.SimpleCryptoActivity }
07-25 09:53:05.984: DEBUG/AndroidRuntime(635): Shutting down VM
07-25 09:53:05.984: DEBUG/dalvikvm(635): DestroyJavaVM waiting for non-daemon threads to exit
07-25 09:53:05.993: DEBUG/dalvikvm(635): DestroyJavaVM shutting VM down
07-25 09:53:05.993: DEBUG/dalvikvm(635): HeapWorker thread shutting down
07-25 09:53:06.003: DEBUG/dalvikvm(635): HeapWorker thread has shut down
07-25 09:53:06.003: DEBUG/jdwp(635): JDWP shutting down net...
07-25 09:53:06.003: INFO/dalvikvm(635): Debugger has detached; object registry had 1 entries
07-25 09:53:06.003: DEBUG/dalvikvm(635): VM cleaning up
07-25 09:53:06.043: DEBUG/dalvikvm(635): LinearAlloc 0x0 used 639500 of 5242880 (12%)
07-25 09:53:06.074: ERROR/AndroidRuntime(635): ERROR: thread attach failed
07-25 09:53:06.114: INFO/ActivityManager(52): Start proc com.cryptooo.lol for activity com.cryptooo.lol/.SimpleCryptoActivity: pid=643 uid=10038 gids={}
07-25 09:53:06.344: DEBUG/ddm-heap(643): Got feature list request
07-25 09:53:06.484: WARN/ActivityThread(643): Application com.cryptooo.lol is waiting for the debugger on port 8100...
07-25 09:53:06.513: INFO/System.out(643): Sending WAIT chunk
07-25 09:53:06.584: INFO/dalvikvm(643): Debugger is active
07-25 09:53:06.723: INFO/System.out(643): Debugger has connected
07-25 09:53:06.723: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:06.924: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:07.133: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:07.333: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:07.533: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:07.574: DEBUG/dalvikvm(119): GC freed 10191 objects / 487632 bytes in 4140ms
07-25 09:53:07.734: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:07.937: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:08.204: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:08.414: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:08.644: INFO/System.out(643): waiting for debugger to settle...
07-25 09:53:08.854: INFO/System.out(643): debugger has settled (1465)
07-25 09:53:09.053: ERROR/gralloc(52): [unregister] handle 0x1338a8 still locked (state=40000001)
07-25 09:53:09.473: DEBUG/dalvikvm(643): GC freed 650 objects / 52080 bytes in 159ms
07-25 09:53:09.993: INFO/ActivityManager(52): Displayed activity com.cryptooo.lol/.SimpleCryptoActivity: 4007 ms (total 4007 ms)
07-25 09:53:13.174: DEBUG/dalvikvm(643): GC freed 73 objects / 93640 bytes in 73ms
07-25 09:53:18.924: DEBUG/dalvikvm(264): GC freed 43 objects / 2024 bytes in 3859ms
07-25 09:53:21.714: DEBUG/dalvikvm(98): GC freed 2725 objects / 159280 bytes in 1649ms
07-25 09:53:22.123: DEBUG/dalvikvm(643): GC freed 126 objects / 900328 bytes in 69ms
07-25 09:53:22.154: INFO/dalvikvm-heap(643): Grow heap (frag case) to 12.648MB for 2092136-byte allocation
07-25 09:53:22.335: DEBUG/dalvikvm(643): GC freed 41 objects / 1592 bytes in 176ms
07-25 09:53:30.224: DEBUG/dalvikvm(643): GC freed 3 objects / 1042080 bytes in 70ms
07-25 09:53:30.294: INFO/dalvikvm-heap(643): Grow heap (frag case) to 15.651MB for 4192360-byte allocation
07-25 09:53:30.474: DEBUG/dalvikvm(643): GC freed 0 objects / 0 bytes in 172ms
07-25 09:53:36.184: DEBUG/dalvikvm(643): GC freed 4 objects / 2096320 bytes in 75ms
07-25 09:53:36.214: INFO/dalvikvm-heap(643): Grow heap (frag case) to 16.091MB for 2557851-byte allocation
07-25 09:53:36.413: DEBUG/dalvikvm(643): GC freed 0 objects / 0 bytes in 200ms
07-25 09:53:36.543: DEBUG/dalvikvm(643): GC freed 54 objects / 2936 bytes in 73ms
07-25 09:53:36.583: INFO/dalvikvm-heap(643): Grow heap (frag case) to 18.537MB for 2557856-byte allocation
07-25 09:53:36.766: DEBUG/dalvikvm(643): GC freed 0 objects / 0 bytes in 180ms

解决方案

About loading the encrypted image: You can use the /assets folder, is in your workspace at the same level than /res. Then you place the file inside. Let's say it is called "myfile.enc". You should use the AssetManager to retrieve the file:

    AssetManager am = activity.getAssets();
    InputStream is = am.open("myfile.enc");

With the InputStream, you can write it to a ByteArrayOutputStream and then get the bytes, or you could pass it to a CipherInputstream instead of calling Cipher.doFinal. This is the way to go if you have a relatively large resource. But for your little test, I think the byte version is the easiest.

To get the Bitmap thing working, I would also put it under assets folder and then get the bytes with the same procedure. The drawables folder is generally for images you are going to use in the GUI, so you can use their ID's on R.java.

这篇关于Android的加密/解密的问题(AES)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆