使用SQLCipher对Room的数据库进行加密

2018-07-16  本文已影响42人  咸鱼Jay

最近公司的项目要用到SQLCipher对数据库进行加密,但是SQLCipher并不是直接支持Room的数据库进行加密,所以没法直接实现。
最后经过我一番查询,发现github有一个开源库(swac-saferoom),可以对room的数据库进行加密。
使用很简单,只需要加一句openHelperFactory就可以了:

    private static AppDatabase buildDatabase(final Context appContext) {
        return Room.databaseBuilder(appContext, AppDatabase.class, DATABASE_NAME)
                .openHelperFactory(new SafeHelperFactory("123456".toCharArray()))
                .addCallback(new Callback() {
                    @Override
                    public void onCreate(@NonNull SupportSQLiteDatabase db) {
                        super.onCreate(db);
                        Log.e("AppDatabase","buildDatabase-onCreate");
                    }
                })
                .allowMainThreadQueries()
                .build();
    }

项目地址

上一篇下一篇

猜你喜欢

热点阅读