2011-04-07 65 views
0

我正在一個iPhone應用程序,因爲我所有的內容存儲在SQLite數據庫。iPhone =如何查看iPhone SQLite數據庫進行修改外部

現在總有越獄的威脅和其他垃圾郵件活動。所以開始知道Mac/windows可以使用一些軟件直接訪問應用程序目錄。

所以我要保持我的數據庫安全以及如果有任何人不得修改/替換數據庫,然後當我開始我的應用程序應該使用一些變化與數據庫進行代碼來獲得通知。

隨着iPhone這樣的事情將如何執行可以在任何一個建議?任何教程或代碼?

我打算用一些加密算法將數據存儲在加密的合成文件中,但是如何保護我想知道的SQLITE數據庫的修改

在此先感謝。

回答

0

你真的不能知道

如果你想盡力而爲,你可以類似計算的SHA512或SHA256數據庫校驗,並存儲在另一個文件中,但它會需要閱讀在整個數據庫每個應用程序啓動關機,這可能不會讓用戶滿意。這需要時間,而不僅僅是讓SQLite3在讀取和寫入上發揮它的魔力。

而且有人惡意可以修改存儲的校驗和,太。 (如果能夠訪問程序的目標代碼,就很容易弄清楚你是怎麼做的,所以沒有必要試圖混淆假設的散列校驗例程。)

無論如何,它是他們的數據,對吧? :)所以如果他們想在幕後擺弄,讓他們擁有它。您需要確保在服務器上接受的任何輸入都會受到與接受來自Web瀏覽器的輸入時相同的不信任。

+0

嗨sarnold,感謝您的回覆 – 2011-04-07 09:11:38

+0

每次我的應用程序進入後臺或喚醒時,我是否可以檢查數據庫文件?數據庫中是否存在任何更新或進行了任何修改或以任何方式執行該操作在現場改變?我可以保留我的SQLITE數據庫密碼嗎? – 2011-04-07 09:13:39

+0

@iPhone Fun,您可能可以在每次睡眠/喚醒時檢查數據庫,但這會進一步減慢任務切換速度。除非數據庫非常小,否則用戶可能會不喜歡這種情況。您可能可以在數據庫中構建一個加密包裝,但無疑會爲任務切換添加_serious_延遲。 – sarnold 2011-04-07 09:23:27