如何在Android Phonegap移动应用中加密HTML + JS资产?

| 我有使用Phonegap基本包装程序和HTML5创建的移动应用程序。我的目标是对资产目录中的文件(JS和HTML文件)进行加密,以使那些无法解压缩APK文件并希望查看JS源代码的人无法读取它们。 好的,我知道没有绝对完美的解决方案。在解决这个问题的过程中,我已经尝试了如何解决源代码的复制保护(JS缩小,混淆等)的选项,但是我发现获取原始代码非常简单(使用JSBeautifier,萤火虫,包括混淆的脚本等)。 所以我的问题是-是否有一些简单的方法来加密JS + HTML文件(因此,仅将APK文件解压缩时它们就不可读且不有用),以及如何在JAVA for Android平台上实现它? 注意:我不了解Java语言,因此请附上我可以使用的工作示例。 编辑:制作最终的APK包时,我还研究了ProGuard功能,但是对我来说这是没有用的,因为它仅处理JAVA文件,但保留资产目录不变。     
已邀请:
        前段时间,我在iOS上遇到了同样的问题。结果是仅在为iOS修补PhoneGap之后。我在http://oleksiy.pro/2011/09/20/phonegap-application-encryption/上写过一篇文章。同样,对于Android而言,此方法可能很弱,因为Java代码可以进行99%的反编译,并且黑客会看到您的密钥。     
        没有简单的方法可以做到这一点。如果要加密JavaScript,则需要某种密钥来对其进行解密。密钥无法存储在设备上,因为这样很容易找到密钥并解密源代码。如果您的应用程序要求用户登录,则用户登录后可以返回加密密钥并使用该密钥解密JS和HTML文件。您可以通过PhoneGap插件使用标准的Android加密库。 话虽如此,它只是JavaScript,因此,如果确实需要加密某些内容,则应该考虑更改方法。     
        我发现最好的组合是高级模式下的DojoToolkit和Closure编译器。 高级模式下的封闭使得JavaScript代码几乎不可能进行反向工程,即使经过了美化程序之后也是如此。一旦您的JavaScript代码变得模糊不清,无法识别和进行反向工程,您的HTML就不会泄露很多秘密。 该链接用于在移动应用程序的高级模式下将Dojo工具包与Closure编译器一起使用: http://dojo-toolkit.33424.n3.nabble.com/file/n2636749/Using_the_Dojo_Toolkit_with_the_Closure_Compiler.pdf?by-user=t 当然,Dojo Toolkit可与PhoneGap很好地配合使用。     
        您可以使用Web视图并加载base64字符串:
protected String base64Str = \"+wL00h2L....\";
wv1.loadData(base64Str, \"text/html; charset=utf-8\", \"base64\");
    

要回复问题请先登录注册