2017-03-03 53 views
0

我曾經使用FMDB從文件讀取sqlite數據。從NSData獲取Sqlite數據庫而不是文件

FMDatabase *db = [FMDatabase databaseWithPath:filePath]; 

現在我想加密文件。當應用程序打開時,它會將文件解密成NSData對象。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{ 

    NSData *decryptedData = [self getDecryptedData]; 

return YES; 

} 

有沒有什麼辦法可以從NSData獲取FMDatabase對象?我不想將NSData保存到文件中,因爲它解密了。

回答

0

我認爲FMDatabaseSQLite通常與文件系統的東西有很大的聯繫,這意味着默認情況下可能沒有辦法做到這一點。

你的選項,我想:爲加密NSData

  • 使用單獨的文件,另一個用於解密SQLite的 DB - 但是這種解決方案失去了其第一個文件

  • 商店的任何好處NSData在一個文件中,並使用臨時或內存SQLite DB(請參閱https://github.com/ccgus/fmdb#database-creation)您需要在啓動時導入數據和從關閉時導出

  • 使用全系統Security東西更復雜的方法,但我有這個

真的沒有經驗