2011-07-27 67 views
1

我想在Android應用程序上擁有大型數據庫。數據庫是一個自包含的文件,每月可能有2-3次更新(每個20MB +,但我預測最大值應該在40MB左右)。Android根植手機和應用程序

我不斷聽到的是Android應用得到紮根,使人們可以訪問這些敏感數據(這將是一個付費應用)。我如何加密數據庫的數據以避免損失。是否有任何替代數據庫(除了sqlcypher)模型(甚至鍵/值)可以使用,更安全?

而且,能有根的手機用戶購買外部存儲(我想在做外部非Android Market的商店,由於訂閱限制)的Android應用程序,並已全面進入它的內容是什麼?

我想要做類似iPhone的模型,其中有對數據庫沒有明顯訪問(如果你不把它放到文檔或啓用設備共享)的東西。

回答

1

如果使用H2,則可以加密數據庫的表。

所以只有你的應用程序可以掛載和訪問它。

你應該當然不是存儲在一個字符串的關鍵,雖然,因爲這會很容易地找到一個反編譯,甚至混淆了。

但是,一般來說,你應該問自己這是否是一個很好的模型。

+0

我是,你應該使用Web服務(請求/響應)的意見,但誰想要的應用程序的一個要求是能夠將數據庫的每一位離線閱讀,偶爾有更新(它的百科全書的內容)。 還有什麼可以用作數據模型(只讀,更新,離線)?我對此很新穎。 – Panagiotis

+0

此外,感謝您的H2提示,我看到unicode不完全支持android sqlite(正如對另一個帖子所說的),我真的需要unicode支持。 – Panagiotis

1

「iPhone模式」越獄越容易。

如果這兩個數據庫和工作與它是植根於手機上,一個確定的足夠攻擊者將獲取到的數據,最終的代碼。調試器和斷點在恰當的時刻是他們需要的。而且,Java代碼非常容易反向工程。由於您必須將解密代碼發送給用戶(否則,該應用程序將如何工作?),同一用戶可以隔離並利用您自己的解密代碼。

+0

據我所知,jailbreaking iphone可以做這些事情作爲生根電話,我現在「相信」在應用程序商店分佈。 – Panagiotis