【问题标题】:Hide/Restrict/Protect code in Eclipse在 Eclipse 中隐藏/限制/保护代码
【发布时间】:2023-04-08 08:09:02
【问题描述】:

我目前正计划制作一个 Eclipse 插件,其中一项功能需要我能够阻止某些代码。

即如果第一个人设置它以阻止代码 A,则第二个人无法更改任何该代码,并且如果第一个人隐藏代码第二个人看不到代码,但它应该仍然可以工作。 因此,即使第二个人看不到/更改第一个人编写的代码,它仍然应该编译。

有人知道这是否可以使用 Eclipse 插件?如果是的话,有什么想法吗?我目前正在学习如何制作插件,所以如果有人指出我正确的方向,那将是一个巨大的帮助。

谢谢。

【问题讨论】:

  • 这听起来像是一个可怕的要求。为什么会有人想要这个?
  • 基本上它用于教学,所以老师不希望学生访问可能是某事答案的重要代码。

标签: java eclipse plugins pde


【解决方案1】:

你能把你想保护的代码放在一个库中,然后以二进制 jar 文件的形式部署到其他团队吗?考虑到 java 反编译器有多好,这远非完美,但也许就足够了吗?

这是信任问题还是安全问题?如果这是不信任某些团队成员的代码问题,您是否可以不在您的代码存储库中强制执行某些内容。例如,在我们的 SVN 存储库中,我们不允许在没有相应票号的情况下提交代码。

【讨论】:

    【解决方案2】:

    您可以查看 Mylyn 的源代码,了解其 Task-Focused UI 的隐藏部分。

    但如果有考虑需求本身的空间:

    • 检查使用 SCM 工具的锁定机制能走多远
    • 拆分项目并引入无源依赖项
    • 请注意,编译后的 Java 类总是可以在一定程度上进行逆向工程

    [更新]

    选项 1:

    对于您的用例,我认为您应该保持简单:

    • 使用混淆器
    • 仅提供二进制文件(jar 或类文件)+ JavaDoc

    选项 2:

    • 您可以尝试引入预编译步骤/自定义构建器来解密您的源代码 (右键单击项目:Properties > Builders)

    [Note] 这让我想起了自己的学习时光。有一项任务是实现一个通过最初未知的迷宫找到路的人工智能。当然,有一条捷径:通过 Java 反射进行即时探索。对学生隐瞒某些事情,会让他们对导致偏离原始任务的错误事情感到好奇。但这可能是寻找人才的一种方式。 :-)

    【讨论】:

    • 我想只提供二进制文件,但这意味着每种不同的语言都不同。如果有一种方法可以将代码用于任何语言,那就更好了。
    • 我的另一个想法是用户选择让我们说第 2-5 行显示而文件的其余部分被隐藏。我可以提取这 3 行,然后加密实际文件。编译时,我可以只插入他们可以修改的 3 行并将它们插入到文件中。我只是不确定插件是否可以做到所有这些?
    • 那么你想在编译之前解密源代码。好吧,这针对构建工具链。这仍然取决于语言。
    • 为什么是语言相关的?在我看来,这与单击构建按钮基本相同,但在您这样做之前,它会解密源代码并添加修改后的部分。我正在考虑只制作一个新按钮来执行此操作,然后它将运行构建按钮所做的任何事情。或者这是不可能的?
    • 我有另一个想法。是否有可能让 eclipse 读取二进制文件(或某种加密类型)并显示它?然后可以将其保存回加密格式?例如eclipse读取加密的java文件,先加密后显示。然后在保存时将其加密。
    猜你喜欢
    • 2014-01-30
    • 2017-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2013-06-05
    相关资源
    最近更新 更多