Java代码安全

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

有没有其他方法可以保护jar子不被其他人打开? 问题是我不希望任何人访问代码,这就是我不喜欢Java的原因。 从我使用的反编译器开始,用C#和Java编写的程序就像变量的名称一样完整,这样可以很容易地访问不是免费的程序。 更糟糕的是,给出源代码。

上面的评论涵盖了大部分这些要点,但我会在这里稍微扩展一下:

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

没有例外。 忘掉它。

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

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

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