当前位置: 首页 > 知识库问答 >
问题:

将源代码隐藏在. jar文件中

苏富
2023-03-14

人们可以很容易地提取<代码>。jar文件,请参阅源代码。我想保护源代码不被看到。一个可能的答案是像对zip文件那样对文件进行密码保护。

但是,如果密码是已知的,那么源代码就可以很容易地看到。

有没有办法隐藏源代码并使其能够运行?类似于〈代码〉的东西。exe在Windows中执行。这应该在windows和Linux环境中运行。

共有3个答案

江衡
2023-03-14

可以很容易地提取。jar文件,请参阅源代码。

严格地说,这是不对的。除非您在JAR中实际包含了源代码文件,否则有人看不到原始源代码。但是他们可以(通常)将JAR文件中的“.class”文件反编译为Java源代码,该源代码在功能上与原始源代码等效。

正如其他答案所述,你可以让那些试图对你的代码进行反向工程的人更加困难;e、 g.使用模糊器或自定义类加载器对JAR文件中以加密形式存储的代码进行解密。但你所能做的一切都不足以阻止一个下定决心的黑客破坏你的措施。没有什么。

保护代码免受反向工程攻击的唯一实用方法是不要发布代码。或者使用软件许可或其他法律手段来实现您的目的。

储承
2023-03-14

您要搜索的是“java混淆”。有很多工具可以帮助解决这个问题,但如果想要您的代码的人真的想要它,那将是一场失败的战斗。如果这是一个严重的问题,您应该用C编写。

邹嘉石
2023-03-14

看看ProGuard,它是一种流行的java混淆器。至于将java程序打包为windows可执行文件,这篇文章可能会帮助你:如何将java程序转换为。exe文件?

 类似资料:
  • 我目前正在使用Java服务包装器。它工作得很好,我可以使用我的可执行jar将其作为服务安装,甚至在将其作为服务安装时传递VM参数。 但由于这将在这里和那里部署,我想知道如何防止人们检索Jar文件中的源文件。这可能吗?我正在考虑将jar文件转换为。exe文件,并将其作为这样的服务安装,因为我发现有几个工具能够做到这一点。但他们似乎不允许我传递VM参数。 有人知道我该怎么做吗?

  • 问题内容: 在jar文件中隐藏某些类真的是不可能的吗? 我不想允许类的直接实例化以使其更加 灵活。该罐子只有工厂(或外墙)可见。 除了创建两个项目之外,还有什么其他方法可以解决此问题? (两个项目:第一个项目包含类(实现), 另一个项目引用第一个项目并包含工厂;稍后仅 引用第二个项目) 问题答案: 我认为如果您的公共工厂方法尝试返回“隐藏”的东西,您将遇到编译器故障或警告。 不,您不能在不重新实现

  • 问题内容: 有没有一种方法可以在xml spring配置文件中隐藏/加密密码?我读到DataSource的“自定义”子类是可能的,但是解决方案将密钥与纯文本保存在相同的配置文件中…因此有点没用。 有没有办法使用KeyStore?例如,从密钥库中读取值。 谢谢大家 问题答案: 是的,你可以这样做。您将必须围绕数据源类创建一个包装器bean。这是我以前做过的一个例子。希望这可以帮助! 然后,在Secu

  • 我需要在源代码中隐藏密码,有什么可能的方法来混淆密码,以降低反编译的风险? 例如

  • 我正在尝试Visual Studio代码。关于VisualStudio代码的一切在我看来都很酷,除了一件事:。git文件夹/文件隐藏在Visual Studio代码中。 我经常通过修改配置文件来更改Git设置。看不到文件真的很烦人。 有没有办法显示文件?

  • 我已经在一个Java项目上工作了一段时间,在公开下载之前,我想添加一个需要连接MySQL数据库的功能。我的问题很简单:如果代码是开源的,我将如何将密码隐藏到数据库中?