我使用 sqlcipher 文档中给出的以下方法加密了我已经存在的 sqlite 数据库
$ ./sqlite3 plaintext.db
sqlite> ATTACH DATABASE 'encrypted.db' AS encrypted KEY 'testkey';
sqlite> SELECT sqlcipher_export('encrypted');
sqlite> DETACH DATABASE encrypted;
这可以工作并生成一个加密数据库,其内存大小与原始数据库相当。然后我尝试使用访问我的android应用程序上的数据库
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(myDatabasePath, "testkey", null);
查询 db 实例显示数据库中没有现有表。我能够创建新表并向它们添加行并读取它们,但我看不到旧的现有表。我仔细遵循了更改导入的 sqlcipher 文档中给出的指南。