我有一个Java应用程序,我正在考虑通过web作为applet发布。我担心Java精明的最终用户能够以某种方式查看源代码,因为我的Web服务器在尝试使用小程序时会将代码发送到远程jvm。保护小程序代码免受黑客的侵害
可以采取哪些预防措施来确保最终用户永远无法直接查看applet的源代码?
我希望发布作为一个小程序可能以某种方式保护代码的隐私,而不是释放具有用户可以解压缩的可下载jar的应用程序。这是真的?
我有一个Java应用程序,我正在考虑通过web作为applet发布。我担心Java精明的最终用户能够以某种方式查看源代码,因为我的Web服务器在尝试使用小程序时会将代码发送到远程jvm。保护小程序代码免受黑客的侵害
可以采取哪些预防措施来确保最终用户永远无法直接查看applet的源代码?
我希望发布作为一个小程序可能以某种方式保护代码的隐私,而不是释放具有用户可以解压缩的可下载jar的应用程序。这是真的?
作为一个Jar本质上只是一个伪装的zip文件,并没有真正的方法让人们看到源代码。有很多可用于Java类的反编译器。大多数关注最终用户反编译源代码的开发人员使用混淆器来使代码变得难以理解,或者至少难以理解。
对不起,这个问题没有真正的好答案,它只是Java语言的本质,您可以随时反编译源代码。
有一些选项将Java应用程序封装在可执行文件中,这会使得访问Jar本身变得更加困难,但显然你不能为applet执行此操作。
下面是关于Java转换为可执行的话题(公司)的博客文章:从拉 http://www.excelsior-usa.com/articles/java-to-exe.html
您可以使用一些available open-source code obfuscators(许多人推荐使用ProGuard,不仅用于混淆而且代码最小化)。
如果有人真的想你的代码,他们会得到它。你可以做的最好的事情是尽量让它变得更加困难。正如其他人所说,典型的方法是使用代码混淆器。
如果您使用Maven构建项目,则可以使用maven central repository中的proguard-maven-plugin。
但是,由于您正在考虑将其作为applet发布,因此如果您可以在服务器端代码上运行任何功能,则可以进一步确保代码库的安全。
我似乎已经达成了另一个java问题的死胡同。你有一点时间看它并帮我解决它吗?我在这个链接中发布了另一个问题:http://stackoverflow.com/questions/20307310/beancreationexception-after-adding-two-variables – CodeMed
可能重复[是否值得混淆java web应用程序?](http://stackoverflow.com/questions/1419474/is-it-worth-to-obfuscate-java-web-application) –
@JoshLee问题是关于_server_端代码;这是关于_client_-side小程序。 – iamnotmaynard