我開發了一個java庫,我認爲它是一個有價值的知識產權。我想保護它免受未被允許的軟件使用。如何保護Java庫不被其他項目使用?
我應該說我的圖書館有一個乾淨的API,我將把使用它的項目的源代碼(不是庫)分發給我的客戶。
我的意思是我想改變圖書館,它只能在我公司的項目中正常工作,但沒有人不能在其他項目中使用它。
什麼是保護圖書館的最佳解決方案?
我必須補充說我可以混淆庫(但不是客戶的應用程序)。
我開發了一個java庫,我認爲它是一個有價值的知識產權。我想保護它免受未被允許的軟件使用。如何保護Java庫不被其他項目使用?
我應該說我的圖書館有一個乾淨的API,我將把使用它的項目的源代碼(不是庫)分發給我的客戶。
我的意思是我想改變圖書館,它只能在我公司的項目中正常工作,但沒有人不能在其他項目中使用它。
什麼是保護圖書館的最佳解決方案?
我必須補充說我可以混淆庫(但不是客戶的應用程序)。
兩個可能性:
您只給出源代碼的信息,您不希望它們編譯或修改源代碼。在這種情況下,我看至少2個級別的安全性可以實現:
我相信混淆就足夠了。如果某人成功理解了你的混淆代碼,他將很容易破解解決方案2。
除此之外,你什麼都不能做,沒有這個機制。
用於混淆我強烈建議Proguard
我想到了像第二種解決方案這樣的機制,就像我用yGuard最好的'name-scheme'策略一樣。我沒有找到散列,而是在類路徑中檢查一堆類的存在。 – 2012-07-12 01:25:15
在這兩種情況下,破解都很容易,難的部分是找到由於混淆而導致檢查的位置。這絕對不是阻止某人使用你的庫的機制,但肯定是混淆。 – tibo 2012-07-12 04:40:32
我知道,所以我正在想辦法讓客戶端應用程序無法輕易確定庫是否正常工作。 – 2012-07-12 07:43:48
所以,你不給庫的源代碼,是否正確?那麼你給出的源代碼是什麼? – Wires77 2012-07-11 20:48:55
使用庫的應用程序的來源。 – 2012-07-11 21:45:23