我已将 SQLCipher 集成到一个简单的应用程序中以进行测试。我已经通过可可pod集成了它。我正在使用 SQLite Manager 来查看我的 Model.sqlite 文件。但我没有找到任何加密数据。我可以轻松读取插入的数据。 我已经按照here给出了步骤。
我在appdelegate中添加了以下代码,如上面的链接所示,当我运行应用程序时,它会进入if语句。 //设置SQLCipher数据库连接:
sqlite3 *db;
if (sqlite3_open([[self.databaseURL path] UTF8String], &db) == SQLITE_OK) {
const char* key = [@"StrongPassword" UTF8String];
sqlite3_key(db, key, (int)strlen(key));
if (sqlite3_exec(db, (const char*) "SELECT count(*) FROM sqlite_master;", NULL, NULL, NULL) == SQLITE_OK) {
NSLog(@"Password is correct, or a new database has been initialized");
} else {
NSLog(@"Incorrect password!");
}
sqlite3_close(db);
}
return YES;
}
答案 0 :(得分:0)
您应该确保没有链接到libsqlite3.dylib
。最后,您可以通过运行hexdump -C yourDatabaseFile.db
来验证数据库本身是否已加密,并确认您没有看到任何表示数据库架构或数据的纯文本。