混淆Java源代码以分发给客户端
我想知道是否有一种方法可以生成我的maven项目的模糊可构建版本,并将其分发给客户机,这种模糊只是为了保护,使其难以窃取 我正在使用proGuard对JAR进行模糊处理,但这种模糊处理是在字节码级别进行的,就像在这个线程中回答的一样 如果无法进行混淆,我如何分发我的源代码并确保它不会被窃取(或者通过组织不当使其变得困难),尽管客户端应该能够构建和运行代码 编辑:需要执行的操作: 1-从源代码中删除所有注释 2-将所有类合并到一个包中 3-具有无意义的类名:(例如A、B、C..)混淆Java源代码以分发给客户端,java,maven,proguard,obfuscation,source-code-protection,Java,Maven,Proguard,Obfuscation,Source Code Protection,我想知道是否有一种方法可以生成我的maven项目的模糊可构建版本,并将其分发给客户机,这种模糊只是为了保护,使其难以窃取 我正在使用proGuard对JAR进行模糊处理,但这种模糊处理是在字节码级别进行的,就像在这个线程中回答的一样 如果无法进行混淆,我如何分发我的源代码并确保它不会被窃取(或者通过组织不当使其变得困难),尽管客户端应该能够构建和运行代码 编辑:需要执行的操作: 1-从源代码中删除所有注释 2-将所有类合并到一个包中 3-具有无意义的类名:(例如A、B、C..) 4-删除所有单元
4-删除所有单元测试。混淆的目标是隐藏源代码,使反向工程不可能。proGuard在这方面做得很好
您想要的是在将源代码提供给客户时从法律上保护它。最好的做法是与律师交谈,以便将法律表格附在客户将收到并签署的给定代码上,承认代码是您的,并且他不能将其用于合同中定义的不同目的。如果您不允许客户使用源代码,为什么要将源代码提供给他们?为什么不给他们编译过的JAR呢?他们到底想验证什么?当然不是源代码,如果它是模糊的?还有,一个可运行的发行版不足以让他们运行测试吗?@josephino你想让他们对混乱的源代码执行安全审计吗?@josephino你说:他们想看看源代码,里面没有任何东西代表安全风险。但您希望为他们提供模糊的源代码。你不认为这会让他们很难审核吗?@josephino我认为你的选择是1)按原样提供源代码,让他们审核,或者2)不提供源代码。只有你能回答哪一个是最好的选择。