Ciao, capisco perfettamente che vuoi rendere la vita impossibile, dopo tanto duro lavoroOriginariamente inviato da asso100
1 proteggere il codice in modo tale che non possa essere cambiato modificato ne letto (ho creato il war senza i sorgenti ma le classi potrebbero sempre essere decompilate)
2 evitare che venga reinstallata altrove
3 fare in modo che dopo n giorni se non mi ha pagato blocco tutto, questo ovviamente prevede del codice java ma nn riesco a trovare un modo veramente efficace.. Interessa anche a me la questione, e allora mi sono documentato un po'
!! Io ti suggerirei:
1. bloccare la lettura o la modifica di un file è possibile solo all'interno di un sistema operativo (a meno di non proteggere ad esempio un file compresso con una password). Su linux puoi agire con gli sticky bit, mentre su Win con i permessi, definendo chi può fare cosa. Dunque non è il tuo caso, perché il tuo cliente X potrebbe modificare i permessi a suo piacimento sul sistema operativo. A questo punto ti consiglio di usare un offuscatore di codice, che agisce sulle classi compilate, rendendo più complessa la loro lettura nel caso siano decompilate. Puoi usare ProGuard:
http://proguard.sourceforge.net/
e qui c'è una guida:
http://dellabate.wordpress.com/2010/...-con-proguard/
2. per questo la vedo più dura. La soluzione ideale sarebbe un sistema di licenziamento, del tipo "per installare o avviare il programma serve una chiave xxx" (come per i software commerciali, Windows su tutti). Non ho mai usato niente del genere, e ci sono molte soluzioni sul web anche se a pagamento. Ho trovato questa che sembra free:
http://java.net/projects/truelicense
http://truelicense.java.net/
Qui c'è anche una lettura interessante:
http://stackoverflow.com/questions/3...va-application
e qui:
http://stackoverflow.com/questions/1...a-java-program
Potrebbe essere interessante implementare un proprio algoritmo per la generazione di una chiave, ovviamente avendo tempo e voglia a disposizione!
3. Dovresti creare una versione trial dell'applicazione. True license dovrebbe andare bene anche per questo:
http://truelicense.java.net/
http://java.net/projects/truelicense
Sul sito c'è scritto: "Licenses can be perpetual or temporary (valid within an arbitrary period).
Shareware applications can configure secure on-demand creation of Free Trial Period (FTP) licenses."
ciao