我为一些一般用途制作了一些通用工具(罐子)。 我的一些朋友想要这些实用程序供他们使用。 我准备分享我的东西(免费),但担心他们不会再进一步分发它。
他们的东西是java中的内容,如以下代码中描述的jar的类文件。
public class UtilityClass{
static{
long secretCode = 7534759 ;
//a hardcoded long value (hardcoded by me for my friend)
//related to friend's Computer System which either
// don't changes untill he reformats his computer
// or is something like motherboard serial number or etc..etc...
long buddiesSystemSecretCode = getSecretCode() ;
if( !(buddiesSystemSecretCode == secretCode) ){
System.exit(1) ;
}
}
private static long getSecretCode(){
long secretCode = 0 ;
//any java code to get friend's System hardware specific code
return secretCode ;
}
}
答案 0 :(得分:4)
任何简单的东西都可以很容易地被反编译并删除。
为什么你害怕他们进一步分发代码的可能性?您需要权衡使代码难以复制的成本(时间和/或金钱)与重新分配可能造成的实际损害。
这样说吧:PC游戏公司在复制保护方面付出了很多努力,看看游戏仍在快速破解。你想要那么长吗?您对此代码附加了多少价值?事实上,如果它有用但不是商业化,那么为什么不把它作为开源呢?
答案 1 :(得分:4)
如果他们是你的朋友,请相信他们。请他们不要分发您的代码。
另一种选择是通过朋友的电子邮件地址和电子邮件地址查看复制保护方案。某种哈希码。但严重的是,如果你不相信他们不转发文件,为什么你认为他们是“朋友”和“伙伴”?
答案 2 :(得分:1)
在您的代码中附上许可证通知,无人可以重新分发。如果他们重新分发您的代码,您可以将您的朋友关进监狱:)
PS。去OpenSource。