如何检查/验证我是否已将SQLCipher正确地集成到我的Xcode项目中?

时间:2015-07-10 17:47:50

标签: ios xcode sqlite sqlcipher

我已将 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;
}

1 个答案:

答案 0 :(得分:0)

您应该确保没有链接到libsqlite3.dylib。最后,您可以通过运行hexdump -C yourDatabaseFile.db来验证数据库本身是否已加密,并确认您没有看到任何表示数据库架构或数据的纯文本。