Android ORM框架 Room 使用SQLCipher进行

作者: 97690CE50CC872D | 来源:发表于2018-10-26 16:26 被阅读6次

Google推出的Room作为Android平台的一款对象关系映射框架 并不支持sqlcipher,需要我们使用第三方库来支持
对使用Room生成的数据库加密方法集成方法

 private static SafeHelperFactory factory = new SafeHelperFactory(passphrase);

    public static UserDatabase getINSTANCE(Context context) {
        synchronized (sLock) {
            if (INSTANCE == null) {
                INSTANCE =
                        Room.databaseBuilder(context.getApplicationContext(),
                                UserDatabase.class, DATABASE_NAME)
                                .openHelperFactory(factory)  //encrypt
                                .fallbackToDestructiveMigration()
                                .build();
            }
            return INSTANCE;
        }
    }

加密后的DB文件导出后打开可以看到需要输入密码


image.png

也可直接对xxx.db文件直接加密

SQLCipherUtils.getDatabaseState(File);  // 判断文件是否加密 ENCRYPTED, UNENCRYPTED, or DOES_NOT_EXIST

SQLCipherUtils.encrypt(Context, File, char[]); // 加密

源码下载# SQLCipherRoom

相关文章

网友评论

    本文标题:Android ORM框架 Room 使用SQLCipher进行

    本文链接:https://www.haomeiwen.com/subject/wjhltqtx.html