2009-08-16 40 views
2

我爲某些通用目的製作了一些通用工具(罐子)。 我的一些朋友希望使用這些實用程序。 我準備好分享我的東西(免費),但擔心他們不會進一步分發它。如何僅與選定的夥伴共享我的jar實用程序?

是他們在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 ; 
      } 
     } 

回答

4

任何簡單的事情都可以很容易地反編譯和刪除。

你爲什麼害怕他們進一步分發代碼的可能性?您需要權衡使您的代碼難以複製的成本(時間和/或金錢)與重新分配會導致的實際損害之間的成本。

就這麼說:PC遊戲公司在防拷貝方面付出了很多努力,並且看看遊戲的破解速度有多快。你想去那些長度?你附加到這個代碼有多少價值?事實上,如果它是有用的,但不是商業的,爲什麼不把它做成開源呢?

4

如果他們是你的朋友,相信他們。請他們不要分發你的代碼。

另一種方法是查看複製保護機制,將朋友的電子郵件地址&作爲某種類型的散列碼。但是,嚴重的是,如果你不相信他們不轉發這些文件,爲什麼你認爲他們是「朋友」和「夥伴」?

1

將許可證聲明與您的代碼放在一起,沒有人可以重新發布它。後來,如果您的朋友重新分發您的代碼,您可以將您的朋友關進監獄:)

PS。轉到OpenSource。

相關問題