5

可能重复:
您是否混淆了您的商业 Java 代码?

除了混淆之外还有其他方法可以保护罐子不被其他人打开吗?问题是我不希望任何人访问代码,这就是我不喜欢 Java 的原因。从我使用的反编译器来看,用 C# 和 Java 制作的程序具有完整的变量名称,这使得访问非免费程序变得容易。更糟糕的是,给出源代码。

4

2 回答 2

5

上面的评论涵盖了大部分这些要点,但我将在这里对其进行一些扩展:

如果你的代码在用户的机器上运行,用户可以反编译你的代码。它是什么语言并不重要。Java,C,空格,brainfuck,没关系。如果代码在计算机上运行,​​人类可以阅读它。即使您制作自己的自制语言和编译器,编译后的代码仍将是一系列标准机器指令,反编译器将轻松地将其转换为 C 或您喜欢的任何语言的可读代码。

没有例外。忘掉它。

但是有一些方法可以得到你想要的:保护一些秘密的业务逻辑。一种简单的方法是将业务逻辑放在您自己的机器上,并通过 Web 服务公开它。用户仍然可以看到客户端请求和服务响应,但您的逻辑是一个黑匣子。

您还可以制作自己的机器,将它们锁定,然后分发给用户。请注意,虽然这是可能的,但在技术上很难做到正确(想想所有被黑的游戏机和智能手机),并且会显着增加您的服务成本。

于 2012-12-22T08:00:32.123 回答
0

据我所知,jar文件(使用 NetBeans 生成)可能只包含.class文件,这些文件是 Java 代码,而不是源代码。我不知道是否有办法对文件进行逆向工程,但它的ASCII可用文本.class很少。

于 2012-12-22T07:52:12.207 回答