Android ORM框架 Room 使用SQLCipher进行加密

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容