【问题标题】:proguard Obfuscate field values of enum classproguard 混淆枚举类的字段值
【发布时间】:2021-06-08 12:02:27
【问题描述】:

我想混淆枚举类(Coffee)的字段名和字段值。

public enum Coffee {
    
    DUTCH("dutch coffee"),
    COLD_BREW("cold brew");

    private String value;

    Coffee(String value) {
        this.value = value;
    }
}

所以我尝试了很多使用Proguard的方法,但得到的结果是这样的。

public enum a {
    
    a("dutch coffee"),
    b("cold brew");

    private String value;

    a(String value) {
        this.value = value;
    }
}

但这就是我想要的。

public enum a {
    
    a("c"), or a(c)
    b("d"); or b(d)

    private String value;

    a(String value) {
        this.value = value;
    }
}

我不知道该应用哪个选项。

[问题]

  1. 是否可以对枚举类的字段值进行混淆或加密? 根据我查到的资料,proguard不提供混淆和加密的功能。。
    (Hiding strings in Obfuscated code)

  2. 如果可以使用 progad 对字段值进行混淆或加密,我想得到一个提示。

【问题讨论】:

  • 混淆是一种重构,基于(大多数情况下)观察到程序行为相同,无论您如何调用它的类、方法、字段、变量等。将文字值更改为编码或加密的值需要特殊代码,并且超出了典型混淆器的范围。

标签: java encryption proguard obfuscation


【解决方案1】:

您正在寻找可以应用字符串加密的解决方案,这不是您可以使用 ProGuard 或 R8 完成的。

ProGuard(和 R8)只能对您的代码应用基本名称混淆。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多