2011-03-07 20 views
0

我們編寫的應用程序很快將通過使用應用內購買API下載的「包」來加強。因此,我們希望開始保護我們的內容,我們希望允許用戶下載/提取到他們的存儲卡上(以免爲我們的大型應用程序耗盡內存),但是,我們需要以某種方式保護文件,以便他們不能簡單地從SD中拿走。我想混淆我的應用程序中的一些文件,怎麼樣?

任何人都可以提出一些可能/簡單/常用的技術在Android上這樣做嗎?

回答

0

我想你可能想要根據一些獨特的設備標識符和您選擇的強鍵生成散列。可以使用在this answer中討論的技術來生成設備的唯一標識符。讓應用程序將該散列傳輸到您的服務器,並在將該散列作爲關鍵字發送給用戶之前(或之後)對該程序包進行加密。通過按需生成密鑰(與最初生成的方式相同),您的應用將在數據讀取時解密數據。查看API中的MessageDigest類和javax.crypto包。

+0

謝謝,這些似乎是更合適的解決方案。 – Hamid 2011-03-07 08:27:24

1

你會想看看ProGuard,它很好地集成了ADT。獲得一個好的ProGuard配置文件的簡單方法是在Eclipse中創建一個新的Android項目,因爲新版本的ADT會自動爲您創建一個。它用於當您右鍵單擊該項目並使用Android工具>導出

+0

我的理解是ProGuard會混淆代碼,但不會混淆其他類型的數據。 – Ori 2011-03-07 02:06:05

+1

@歐瑞,沒有辦法保護其他類型的數據。任何使用apk包裝的祕密都可以通過調試器獲得。 – rook 2011-03-07 02:12:31

+0

但是,謝謝你,這不是我所要求的。這是我們希望保護的非代碼資源。 – Hamid 2011-03-07 08:28:25

相關問題