Java代码安全性

5 java obfuscation jar deobfuscation

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

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

小智 5

上面的评论涵盖了其中的大部分内容,但我将在此处对其进行一些扩展:

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

没有例外。忘掉它。

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

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