gpt4 book ai didi

android - Kotlin 数据类的 toString 方法的混淆

转载 作者:行者123 更新时间:2023-12-04 11:35:48 29 4
gpt4 key购买 nike

我在我的应用程序中到处使用 Kotlin 数据类。
我在编译时使用 R8。
我有一个安全要求,其中生成 toString方法不能包含原始属性名称。目前,生成的方法包含纯文本中的整个类属性名称及其混淆值名称。

public String toString() {
return "MyClass(id="+this.f1231msd+", password="+this.fj92313+")");
}
我有几个选项,但我想看看是否还有其他我没有找到的选项。
  • 我检查了 Proguard 的源代码,发现 this class使用 toString 中的混淆名称方法。如果 R8 这样做但似乎没有这样做,这将是完美的。
  • 手动覆盖每个数据类'toString带有空白字符串的方法。
  • 为我写一个 R8 规则到第 2 步
  • 创建编译时注释以返回 toString 的空白字符串

  • 还有其他选择吗?

    最佳答案

    在寻找其他选项和解决方案之后,我决定修改一个现有的编译器插件,它可以为我自动执行此操作。
    这让我仍然可以从 Kotlin 自动生成的 toString() 中受益。开发过程中的方法,但随后编辑 toString() 的内容在发布编译时。
    它输出如下方法:

    public String toString() {
    return "██";
    }
    目前这只是在 my fork在分公司 redact-all-and-class-names但它可能会包含在主库中。

    关于android - Kotlin 数据类的 toString 方法的混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64978370/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com