2011-03-07 63 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

相关问题