如何保护java库不被其他项目使用?

时间:2012-07-11 20:42:57

标签: java copy-protection

我开发了一个java库,我认为它是一个有价值的知识产权。我想保护它不被不允许使用的软件使用。

我会说我的库有一个干净的API,我会将使用它(而不是库)的项目的源代码分发给我的客户。

我的意思是我想以某种方式更改库,它只能在我公司的项目中正常运行,但在其他项目中没有其他人无法使用它。

保护图书馆的最佳解决方案是什么?

我必须补充一点,我可以混淆库(但不是客户的应用程序)。

1 个答案:

答案 0 :(得分:1)

2种可能性:

  • 您希望发布应用的源代码,并允许客户自行编译并修改源代码;在这种情况下,无论语言如何,保护您的图书馆在技术上都是不可能的。
  • 您只为信息提供源,您不希望它们编译或修改源。在这种情况下,我看到至少可以实现2级安全性:

    1. 使用库的来源编译和混淆应用。这样,你的所有公共API都将被混淆,因此几乎无法使用(除非有人真的想要去混淆它,祝你好运......)。您还可以重新打包您的类,所有库类都将与应用程序包在同一个包中,因此很难知道哪些文件是库的一部分以及它正在做什么。
    2. 您在编译时实现了一种机制,用于计算应用jar的哈希并修改库源代码,以便在运行时检查该应用是否真的是您的应用。

我相信混淆就足够了。如果有人成功理解了您的混淆代码,他将很容易破解解决方案2.

除此之外,你不能做任何事情,没有机制。

对于混淆,我强烈推荐Proguard