在Java中混淆​​字符串

时间:2017-01-02 16:25:58

标签: java obfuscation

我正在处理一个项目,我需要隐藏特定的URL调用,我不希望这里看到这个URL是URL调用的示例方法

public void example(View view) {
    goToUrl("example.com");
}

3 个答案:

答案 0 :(得分:5)

你真的不能。您可以对方法名称进行模糊处理,因为最终不需要知道原始方法名称。您可以使用混淆。在这里,您最终需要知道真实的URL。因此需要一个不混淆的功能。这意味着您可以从中轻松获得结果。或者您知道,只需跟踪传出的HTTP请求通过代理使用的URL。

答案 1 :(得分:1)

在将近2年后回顾这个问题,这个问题已经引起了很多关注,我发现我最终将一些混淆器用于String混淆,但是每个混淆都可以被破坏。这是我的混淆器列表,用于加密字符串,我将通过列出付费混淆器来开始。

1。 Zelix Klass Master

他们的官方网站是https://zelix.com

在我看来,这是jar或android最好的Java混淆器之一。 由于混淆器的性能好,它的价格并不便宜。

如果您是小型开发人员,则单个许可证的价格为239美元,如果您是开发人员团队(Comapany),则为479美元。

您可以看到功能列表here

2。 DexGuard

他们的官方网站是https://www.guardsquare.com/en

DexGuard是由Proguard背后的人制造的混淆器

这是我认为第二好的混淆器。与Zelix上的名称混淆相比,名称的混淆要好得多。

我不确定它们的价格,因为我从未使用过它,但是我已经看到它正在应用程序中使用。您如何请求定价here

免费混淆器。

您可以找到免费的替代项,例如StringCareParanoid

它们不如我上面列出的那样好,具有Java基本知识的人最多需要5秒钟的时间,使用这两个工具来破解您的程序。

答案 2 :(得分:-2)

对于混淆字符串,您现在可以使用新的gradle插件+库,请在此处查看

https://github.com/MichaelRocks/paranoid

现在还有一个新的插件可以混淆资源,请在下面查看

https://github.com/shwenzhang/AndResGuard

共享更多的开发人员可以使用它,因此越来越多的开发人员将为这些插件的进一步开发做出贡献,因此我们可以共同改进这些插件。