小编wct*_*097的帖子

javax.crypto在不同版本的Android OS中的工作方式不同?

我正在使用此代码段来加密/解密我的应用程序数据库中的数据:

http://www.androidsnippets.com/encryptdecrypt-strings

似乎javax.crypto.KeyGenerator.generateKey()操作在Android 2.3.3操作系统中的工作方式与其他(以前的?)版本不同.当然,这会给我的用户带来一个主要问题,当他们将设备从2.2升级到2.3.3并且应用程序开始抛出解密数据库的错误.

这是一个已知的问题?我是否错误地使用了加密库?任何人都有任何关于如何解决这个问题的建议,以便2.2中加密的数据能够在2.3.3中解密?

我构建了一个测试应用程序,通过加密功能提供值.当我在2.2 AVD上运行它时,我得到一个结果.当我在2.3.3 AVD上运行时,我得到了不同的结果.

    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.os.Bundle;
    import android.widget.TextView;

    public class main extends Activity {
        TextView tvOutput;
        static String out;
        String TEST_STRING = "abcdefghijklmnopqrstuvwxyz";
        String PASSKEY = "ThePasswordIsPassord";

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            tvOutput = (TextView) findViewById(R.id.tvOutput);
        }

        @Override
        public void onResume() {
            super.onResume();
            out = "";
            runTest();
            tvOutput.setText(out);
        }

        private void runTest() …
Run Code Online (Sandbox Code Playgroud)

java encryption android javax.crypto

6
推荐指数
1
解决办法
3630
查看次数

Android 2.2中的BackupManager和BackupAgent

我已经查看了文档和示例BackupRestore应用程序,并编写了我自己的测试应用程序实现android:backupAgent.我扩展了BackupAgent课程,因为我主要担心的是能够从数据库备份数据.我甚至无法使用此功能制作一个简单的概念验证应用程序.

为了使事情变得非常简单,我宣布android:backupAgentMyBackupAgent在清单.然后我创建了一个MyBackupAgent.java类,扩展BackupAgent.然后我为类中的onBackup()onRestore()方法创建了覆盖MyBackupAgent,就像在示例和文档中一样.我Log.i()在每个函数的最开头添加了一个调用,以便在调用函数时可以在LogCat中识别.同样,我在这两个方面都设置了断点.然后我继续实现我的代码来备份数据库.

我使用2.2w/Google API创建了一个模拟器图像,甚至在Accounts&Sync下添加了一个gmail帐户.运行adb命令以启用bmgr,备份应用程序,运行备份,卸载应用程序,重新安装应用程序等....我从来没有从Log.i()命令中的任何一个onBackup()onRestore()函数中获取日志文件中的消息.

我在我的Evo 4g上再次尝试2.2.结果相同.备份管理器似乎没有在类中调用onBackup()onRestore()函数MyBackupAgent.

我在日志中得到的唯一奇怪信息是来自BackupManagerService"备份传递但e = true p = false",我相信在响应ADB命令备份应用程序时.

有什么建议?我错误地认为和函数中的Log.i()语句会出现在LogCat中吗?onBackup()onRestore()

android android-backup-service

1
推荐指数
1
解决办法
4005
查看次数