2012-03-06 77 views
0

我瀏覽過大約二十篇這裏和其他地方尋找答案的文章。沒有人似乎已經解決了這個問題 -iOS數據存儲指南catch 22

我們有一個具有相當大的數據庫(大約5MB)的應用程序。脫機工作時,應用程序需要數據庫。在線時,可以通過從我們的服務器下載來重新創建數據庫。

我們不能使用核心數據而不是我們自己的數據庫,因爲數據必須經過加密才能符合政府的隱私標準。

沒有此數據庫,該應用程序無法脫機工作,因此無法進入庫/緩存。

我們可以將數據放入文檔中,並將其標記爲「不備份」iOS 5,但這不適用於iOS 4,因爲該屬性無法識別。

那麼我們可以用iOS 4中的數據庫做些什麼?

+0

因此,您的要求規定,不僅要在設備上加密,而且在設備同步時不能備份到計算機上? – QED 2012-03-06 17:37:21

+0

@psoft - 除了要重新創建的數據已備份在我們的服務器上外,沒有關於備份的規定。 – 2012-03-06 18:18:58

+0

@HotLicks您可以擴展「加密以滿足政府隱私標準」嗎?有沒有可以指向的標準? – 2012-03-06 19:11:58

回答

0

就在我頭頂。

我想你可以繼承NSManagedObject,這樣它就可以加密任何保存到核心數據的數據並在讀取它時將其解密。雖然在CPU上會有很多開銷。有可能會有一些優化它。

檢查了這一點:AES Encryption for an NSString on the iPhone

+1

通過字符串加密字符串非常複雜且容易出錯,效率非常低,並且嚴重不安全。 – 2012-03-06 18:14:43

0

把它放在(sandbox)/Library/Application Support。以下是Apple如何描述應用程序支持文件夾:

您的應用程序爲用戶創建和管理的資源和數據文件。您可以使用此目錄來存儲應用程序狀態信息,計算或下載的數據,或者甚至是您代表用戶管理的用戶創建的數據。

引用自Apple's File System Programming Guide for iOS

+0

奇怪的是,在任何數據存儲指南中沒有提及應用程序支持。考慮到與重新提交相關的時間/成本(特別是對於我們來說,鑑於我們的客戶堅持要提交實際提交的內容),如果能夠接受此解決方案,那將是很好的。 – 2012-03-06 18:21:20