我正在使用一個MFC
應用程序,我必須使用sqlite
數據庫iOS
應用程序。如何從另一個平臺(iOS到Windows)打開和讀取SQLite數據庫
iOS
數據庫使用SQLite
API加密,調用sqlite3_key()
。
但是,當我試圖在我的MFC
應用程序打開的iOS
同一個數據庫,它拋出異常說文件被加密數據庫,無法從數據庫中讀取數據。
的iOS
數據庫將從Dropbox
由MFC
應用下載將取代當前的數據庫,並使用它,而不是以前
我使用下面打開使用CppSqlite3
Wrapper的數據庫Sqlite
代碼:
CppSQLite3DB db;
try{
db.open("mydb.db");
TRACE(_T("database opened"));
db.key("1234", strlen("1234"));
}catch(CppSQLite3Exception e){
return NULL;
}
由於CppSQLite3DB
類沒有稱爲key()
的功能。我添加了該功能
void CppSQLite3DB::key(const char* szKey, int nKey)
{
if (mpDB)
{
sqlite3_key(mpDB, szKey, nKey);
}
}
並將我的庫升級到SQLiteEncrypt。 而iOS
應用程序使用SQLCipher
代替Database
。
但是,結果是一樣的。所以, 任何人都可以告訴我如何實現這一目標?
先謝謝您。
您確定在打開後設置密鑰正確嗎? – PlasmaHH
是的,因爲'iOS'數據庫是用密鑰加密的並且使用它,所以我必須設置密鑰到數據庫。 –
[CppSQLite3DB](http://www.codeproject.com/script/Articles/ViewDownloads.aspx?aid=6343)類似乎沒有任何方法對應'sqlite3_key()'(這不是部分[標準SQLite API](http://www.sqlite.org/c3ref/funclist.html)。)我認爲你需要支持加密的'sqlite3.lib'的擴展版本。 – nodakai