2014-01-17 5 views
4

MFC 응용 프로그램 중 하나에서 작업하고 있습니다. iOS 응용 프로그램 데이터베이스를 사용해야합니다.다른 플랫폼에서 SQLite 데이터베이스를 열고 읽는 방법 (iOS에서 Windows로)

iOS 데이터베이스는 API 인 sqlite3_key()을 사용하여 암호화됩니다.

하지만 내 MFC 응용 프로그램에 iOS 동일한 데이터베이스를 열하려고 할 때 예외가 파일은 데이터베이스를 암호화되지 않거나 말을 데이터베이스에서 데이터를 읽을 수 없습니다 던졌습니다.

iOS 데이터베이스는 MFC 응용 프로그램 Dropbox에서 다운로드 할 것이며, 현재 데이터베이스를 교체하고 내가 Sqlite에 대한 CppSqlite3 Wrapper을 사용하여 데이터베이스를 여는 다음 코드를 사용하고 이전

대신 사용됩니다

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 응용 프로그램은 DatabaseSQLCipher을 사용합니다.

그러나 결과는 같습니다. 그래서, 아무도 내가 그것을 얻을 수있는 방법을 말해 줄 수 있습니까?

미리 감사드립니다. http://sqlcipher.net/에서

+0

키를 누른 다음 올바르게 설정 했습니까? – PlasmaHH

+0

예, 'iOS' 데이터베이스가 키로 암호화되어 있기 때문에 키를 데이터베이스에 설정해야합니다. –

+0

[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

답변

1

:

SQLCipher는 [..] 에 대한 폭 넓은 플랫폼 지원이

C/C++[..]iPhone/iOS[..] 아마에 SQLCipher를 사용하여 Windows 응용 프로그램은 비 호환성 문제를 해결합니다.

+0

나는 시도했지만 나 같은 결과가 나왔다. –