来自assets文件夹的Android SQLCipher和DB

Lui*_*ves 5 android sqlcipher

此刻,我的SQLite数据库文件是加密的,并将其从复制的assets文件夹到应用程序data/data/mypackage/databases文件夹中.

现在我想将SQLCipher库添加到我的项目中并开始使用它们.我可以加密db文件并将其复制到assets应用程序内部并使用相同的密钥吗?是否可以在Windows上加密数据库?我需要做什么?

小智 -2

我认为我们应该这样做

SQLiteDatabase normalDB = null;
SQLiteDatabase cryptedDB = null;
normalDB = SQLiteDatabase.openDatabase(dbPath, "", null,
    SQLiteDatabase.OPEN_READONLY
    | SQLiteDatabase.NO_LOCALIZED_COLLATORS);

cryptedDB = SQLiteDatabase.openOrCreateDatabase(
    encrypteddbPath, Constants.CRYPT_KEY, null);

Cursor cursor;

cursor = normalDB.query(TABLE_CITY,
new String[] { FIELD_CITY_CODE, FIELD_NAME1,
    FIELD_NAME2, FIELD_NAME3 }, null, null, null,
    null, null);
int i = cursor.getCount();
while (i > 0) {
    ContentValues newLabelValues = new ContentValues();

newLabelValues.put(FIELD_CITY_CODE, cursor.getString(0));
        newLabelValues.put(FIELD_NAME1, cursor.getString(1));
        newLabelValues.put(FIELD_NAME2, cursor.getString(2));
        newLabelValues.put(FIELD_NAME3, cursor.getString(3));
        cryptedDB.insert(TABLE_CITY, null, newLabelValues);

cursor.moveToNext();
}
Run Code Online (Sandbox Code Playgroud)