Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
混淆Java源代码以分发给客户端_Java_Maven_Proguard_Obfuscation_Source Code Protection - Fatal编程技术网

混淆Java源代码以分发给客户端

混淆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-删除所有单元

我想知道是否有一种方法可以生成我的maven项目的模糊可构建版本,并将其分发给客户机,这种模糊只是为了保护,使其难以窃取

我正在使用proGuard对JAR进行模糊处理,但这种模糊处理是在字节码级别进行的,就像在这个线程中回答的一样

如果无法进行混淆,我如何分发我的源代码并确保它不会被窃取(或者通过组织不当使其变得困难),尽管客户端应该能够构建和运行代码

编辑:需要执行的操作:

1-从源代码中删除所有注释

2-将所有类合并到一个包中

3-具有无意义的类名:(例如A、B、C..)


4-删除所有单元测试。

混淆的目标是隐藏源代码,使反向工程不可能。proGuard在这方面做得很好


您想要的是在将源代码提供给客户时从法律上保护它。最好的做法是与律师交谈,以便将法律表格附在客户将收到并签署的给定代码上,承认代码是您的,并且他不能将其用于合同中定义的不同目的。

如果您不允许客户使用源代码,为什么要将源代码提供给他们?为什么不给他们编译过的JAR呢?他们到底想验证什么?当然不是源代码,如果它是模糊的?还有,一个可运行的发行版不足以让他们运行测试吗?@josephino你想让他们对混乱的源代码执行安全审计吗?@josephino你说:他们想看看源代码,里面没有任何东西代表安全风险。但您希望为他们提供模糊的源代码。你不认为这会让他们很难审核吗?@josephino我认为你的选择是1)按原样提供源代码,让他们审核,或者2)不提供源代码。只有你能回答哪一个是最好的选择。