2012-06-15 54 views
4

我建立一個使用Sqlite DB的應用程序。 用戶可以將他們的信息輸入到數據庫並檢索它們。 但是,我希望他們能夠備份sqlite數據庫。 我所做的是將sqlite數據庫放在文檔文件夾中,以便他們可以使用iTunes將其檢索出來。 例如,如果ipad有問題,我希望他們能夠將sqlite數據庫轉移到另一個ipad。Sqlite db安全

現在的問題是,我不想讓他們知道數據庫中的信息,應該說數據庫結構。 那麼我如何構建一個只能由我的應用程序讀取的數據庫?當他們使用sqlite瀏覽器打開時,他們將無法看到任何東西。 我正在尋找簡單的東西。打開它之前可以讓db提示密碼?

+0

SQLite的安全性?哈哈哈。不要讓其他人訪問它。一種解決方案是導出/備份到[明確定義的] XML格式或「僞結構」的SQLite數據庫文件。或者*加密備份數據庫(例如在ZIP +密碼中)。或者只是改變文件擴展名(這對大多數人來說都適用)。另一種解決方案是使用像FF這樣的修改過的SQLite版本,然後*將其與其他SQLite程序兼容(例如通過添加一堆「額外的東西」)。我根本不推薦最後一種方法。 – 2012-06-15 03:45:28

回答

6

這是你的答案link,SQLCipher是最好的東西,它將加密整個數據庫,如果有人從iOS設備獲取數據庫,任何方式,仍然會提示輸入密碼,否則將不會允許用戶看到相同的內容。即使使用命令提示,用戶也將無法看到數據庫。

希望這將是有用的....

+3

爲了讓手機能夠解密它,密鑰必須位於應用程序的某個位置,這意味着確定的用戶最終能夠獲得該密碼。這個答案給人一種錯誤的安全感。 – ceejayoz

+0

沒有人可以得到的代碼,所以任何人都可以訪問你的密鑰?其他方面,您可以從Web服務獲得密鑰。 –

+0

@ceejayoz無論如何都沒有絕對的安全性,而使用硬件專用的密鑰(IMEI和類似)會驅趕99,99%的普通用戶和90%的黑客。而對於嚴格的安全性,數據不應該首先存儲在設備上。 –