2015-07-10 16 views
0

我已經集成SQLCipher用於測試目的的簡單應用。我一直在用SQLite的經理查看我的Model.sqlite文件整合它通過可可pods.I。但是我沒有在那裏找到任何加密的數據。我可以輕鬆讀取插入的數據。 我遵循這裏給出的步驟。 https://www.zetetic.net/sqlcipher/ios-tutorial/如何檢查/檢驗我是否集成SQLCipher corretly到我的Xcode項目?

我在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

我不認爲有很多人都可以做,以幫助,直到你證明你的代碼。 – trojanfoe

回答

0

你應該確保你不會鏈接到libsqlite3.dylib。最後,您可以通過運行hexdump -C yourDatabaseFile.db來驗證數據庫本身是否已加密,並確認沒有看到表示數據庫架構或數據的任何純文本。

+0

我已經刪除了鏈接二進制libsqlite3.dylib有圖書館,但仍運行hexdump都-C mydatabasefile.sqlite時,我可以看到未加密的數據。對於我.db文件沒有得到生成。 –

+0

你將需要申請一個模式和插入數據,以驗證加密的數據庫。上面的代碼僅打開與數據庫文件的連接,然後鍵入它。你仍然需要數據。 –

+0

我有架構,我插入和提取數據。當我使用** hexdump -C myDatabase.sqllite **時,我可以看到所有插入到myDatabase中的數據。 –

相關問題