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文件导出后打开可以看到需要输入密码


Android ORM框架 Room 使用SQLCipher进行加密_第1张图片
image.png

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

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

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

源码下载# SQLCipherRoom

你可能感兴趣的:(Android ORM框架 Room 使用SQLCipher进行加密)