簡體   English   中英

保護iOS數據庫信息

[英]Protect iOS Database information

我正忙於為iPhone和iPad iOS7編寫商業電子詞典應用程序。 該應用程序的價值確實存在於我工作了多年的數據庫中,而不是應用程序本身。 數據庫非常大(在轉換為SQLLite之類之前,在Windows計算機上為195mb),我想知道什么是最好的保護數據的方法,以便應用程序可以讀取它,但其他人則無法讀取/獲取它。 似乎大多數移動開發人員都使用SQLLite,但是可以使用普通的十六進制編輯器輕松讀取數據。

通過這個論壇和其他論壇,我了解到SQLCipher是一個很好的工具。 我的問題是,SQLCipher使用SEEMS對數據庫進行加密,然后在需要將其讀取到臨時文件中時將其解密,然后再對其進行加密。 如果是這樣,我有兩個問題。

  1. 該數據庫非常大,每次對其解密並再次加密將使該應用程序非常慢。
  2. 當短時間可用時,阻止黑客讀取/復制解密(臨時)文件的原因是什么?

我是否了解SQLCipher的工作正常,如果可以,是否還有其他工具/方法可以加密/保護數據庫,以便程序仍可以通過SQL查詢讀取它,而無需以任何方式輕松獲得數據,或者您有其他建議可能有?

謝謝

根據此頁面: http : //sqlcipher.net/design,它們沒有整體解密數據庫,因此問題1的答案為否。 他們聲稱標准SQLite性能的開銷約為5-15%。

至於#2-SQLCipher將在頁面中解密數據庫,因此從理論上講-有人可以以解密方式訪問內存中的該頁面。 但是,這對於您使用的任何加密方法都是正確的。 只需考慮一下-即使解密完整的數據庫,您的應用程序仍需要以某種方式顯示/訪問其中的某些數據。 此時,必須將數據解密。 這里唯一的問題-在給定的時刻將解密多少數據。

您還有另一種選擇,就是嘗試使用標准SQLite和標准加密庫自己實現加密/解密。 例如,您可以分別加密每一行(甚至是帶有敏感數據的字段),並在需要時將其解密-但隨后,在特定時刻,該特定行將在內存中解密並被黑客看到。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM