Exterts, We are developing a license manager application for our standalone java application. I am looking for some ideas to manage following things...
1. How do we take care of evaluation license expiry. Specially in cases when a user changes his system date to past date to keep the software running.
2. How do we restrict user from un-installing and re-installing the same software again on the same computer. Specially if he deletes all files and folders related to our software. and also can do windows registry entry cleanup(In case its windows machine).
It sounds like you want to look in to using digital certificates. You can look into OpenSSL or Java's Keytool for information on how to make them. Basically, they're an encrypted file that the user can't change without invalidating. They also have an optional expiration date that you can set to any arbitrary limit. Then, you have to write your software so that it looks for a valid, unexpired certificate before it will run. You can look into the JCE and JSSE packages for information on how to do this.
I think in restricting the reinstallations in the same system we can use mac address of the system..
Joined: Aug 06, 2008
So are you suggesting a network based license management where I keep track of the MAC address of a machine and once its installed it cant be re-installed.....But what if the machine is not over the network ? Then how would you check if this MAC address was already in use?
Joined: Mar 22, 2005
How do we restrict user from un-installing and re-installing the same software again on the same computer.
Why would you want to do that? It's not an uncommon thing to want to reinstall applications, especially on Windows where people occasionally rebuild their machines.
Users may also upgrade to a different machine, in which case they need to be able to move or reinstall the application.
Making this hard or impossible is a sure way to annoy users.
As to MAC addresses (which you can't find out without using JNI, I believe), what if the user swaps network cards? [ August 15, 2008: Message edited by: Ulf Dittmer ]