1

我已经阅读了许多关于 AES、CommonCryptor、salt 和 MAC 的帖子和资源,以寻找解决我在发布移动软件库时遇到的问题的方法。我想使用自定义 URL 方案通过 HTML 和 JavaScript 在 WebView 中将加密字符串传递给我的 iPhone 和 Android 应用程序,并将字符串作为参数。HTML 文件将在我的站点上创建,然后分发给用户以存储在他们的 Web 服务器上。

根据我所阅读的内容,我将使用密钥对 HTML 文件中的字符串进行加密,然后再将其分发给用户。然后相同的密钥将存储在库中并用于解密字符串。但是,如果有人反编译我的应用程序,他们将拥有密钥并能够解密存储在分布式 HTML 文件中的字符串。我知道这个库可以很容易地反编译,但是提供字符串和代码真的是放弃它。真正的危险是,人们可以使用 HTML 文件在我的库的被黑版本中触发恶意行为。

我真的不想打电话给我的网站来获取密钥或盐,我不确定这会提供任何保护。与库中的密钥一起存储的随机盐会起作用吗?

我愿意花时间研究、编码和测试它,但首先我想知道使用 AES、CommonCryptor、salt 或 MAC 是否可行。如果我们在这里解决它,它将作为这个问题的解决方案提供给所有人。

谢谢你

4

1 回答 1

0

编译您自己的 openssl 和 crypro 静态库,并将这两个静态模块包含到您自己的本机 .so 模块中。不要使用内部 Android SSL。

以某种受保护的方式使密钥深入内部(简单的解决方案是使用带有一些非平凡散列的浮点数组)。解密本机代码中的加密消息。在本机代码中确定消息是否正常时。不要使用纯布尔值返回 Java。

每当黑客想要破解您的代码时,他必须反编译大约 800K 的本机代码。

于 2013-04-27T11:10:26.597 回答