Android 如何加密资产

Android 如何加密资产,android,security,encryption,assets,Android,Security,Encryption,Assets,我即将发布一个在资产/文件夹中包含大量JavaScript的应用程序。我将所有内容(JS)缩小并合并到一个500kb左右的大文件中。我正在寻找方法来加密它,并从资产文件夹中隐藏它 你认为最好的方法是什么 在Java类中存储为普通字符串,并(我不知道是否可能)告诉proguard对其进行专门加密。-->我会通过onintercepturloading 以加密文件的形式存储在资产中,使用任何第三方或Java加密例程进行热解密——这是我很想听到的 随便你 理想情况下,应该将该解决方案作为构建过程的一部

我即将发布一个在资产/文件夹中包含大量JavaScript的应用程序。我将所有内容(JS)缩小并合并到一个500kb左右的大文件中。我正在寻找方法来加密它,并从资产文件夹中隐藏它

你认为最好的方法是什么

  • 在Java类中存储为普通字符串,并(我不知道是否可能)告诉proguard对其进行专门加密。-->我会通过
    onintercepturloading

  • 以加密文件的形式存储在资产中,使用任何第三方或Java加密例程进行热解密——这是我很想听到的

  • 随便你

  • 理想情况下,应该将该解决方案作为构建过程的一部分,但如果没有其他解决方案,我会手动生成加密数据

    编辑:DexGuard似乎是一种专业的方式,但它是350欧元,有免费的替代品吗


    请不要问我为什么要加密它。我需要这样做,就像有一天你需要去看牙医一样。

    我建议你不要依赖第三方工具,因为你可能会被供应商锁定,这意味着如果他们停止开发软件等等。我会把Javascript的内容放在一个大的最终静态
    字符串中,然后就像你说的那样告诉Proguard去做它的魔术

    摘自Proguard's

    ProGuard是否加密字符串常量?

    不。程序代码中的字符串加密必须是完全可逆的 根据定义,它只是提高了混淆级别。它增加了 代码的封装外形。然而,根据大众的需求,ProGuard的 Android的封闭源代码兄弟DexGuard不支持字符串 加密,以及类加密和隐藏访问 敏感API


    你绝对不能做任何被认为是安全的事情。因此,在浪费精力和获得安全性之间,混淆几乎是最好的折衷办法(使黑客攻击更加困难,但很少)

    保护加密方案需要密钥。你没有地方藏你的钥匙。你可以把它放在你的APK里,也可以让APK从服务器上下载。使用正确的工具,两者都很容易识别

    如果你只是想让黑客慢下来,那么就做一些简单的事情。将javascript部分分散在不同的位置,并使用一些简单而快速的编码,如
    base64
    。然后在飞行中把它们结合起来。一个专业的家伙会打破它,就像任何加密方案一样,但你不会浪费很多时间来实现它。更多时间编写实际应用程序


    做的和我上面描述的差不多(字符串模糊处理),但对于独立开发者来说,我觉得它非常昂贵(最便宜的许可证是350美元)。

    为什么要加密它?专注于制作更好的内容,而不是徒劳的DRM方案。@vertti因为如果有人拿到APK,他们可以打开它并检查资产文件夹中的代码。是的,我知道,但你想在那里隐藏什么秘密?哎哟,350欧元。。。恐怕我正在实施一个内部解决方案……嘿,casperOne,我认为说这不是建设性的有点挑剔,因为提出的选项肯定是基于专业知识的,并且是元代码。我认为这不是一个愚蠢的问题,当元代码很重要时,添加无意义的代码太容易了。此外,这依赖于一个有缺陷的webview。这个组件的方法到处都有bug,这就是为什么有时候不清楚该选择哪种方法!PRoGuard会自己变魔术吗?你能把它微调一下,让它特别地弄乱大字符串吗?@rupps请看我的最新答案。嘿@simon谢谢。Dexguard是我正在寻找的,我想:)我会试试,然后贴出来updates@rupps不用担心!:)这样做!请注意,dexguard与proguard不同,它是一个付费应用程序。我不想要超级保护,但我也不希望我们的所有代码都通过简单的PkUnzip公开。如果有人想偷我们的代码,我希望他/她至少调试几个小时,然后做一些简单的事情。将javascript部分分散在不同的位置,并使用一些简单而快速的编码,如
    base64
    。然后在飞行中把它们结合起来。一个专业的家伙会打破它,就像任何加密方案一样,但你不会浪费很多时间来实现它。更多的时间来编写你的实际应用程序。是的,这是我的C计划,但我给DexGuard一个机会,看起来这正是我想要的。。。对于一个独立开发者来说,我认为DEXARGER相当昂贵。我相信这和我上面描述的差不多,但是是的,这将是最不痛苦的方式。祝你的应用好运。upps不知道它是商业应用!!!