最近公司的项目要用到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();
}
网友评论