Question

I have to implement a software licensing mechanism for an organization. We will provide a 30 day trial for the software. How to ensure that after 30 days is over no one will be able to use the software. The product is a web based product developed in JAVA EE and can be installed on Windows linux either on a physical machine or on virtual machine. I want to generate a unique ID for a machine that I can manage in my server and at time of installation I can query my servers to get info whether trail is being installed or not. For shared computers i.e, two persons using same computer we have our separate mechanism. I just want to know the safest way and most reliable way to generate Unique ID for a machine which will work in every case. I have read other SO questions. Some are telling to use BIOS, processor ID etc but I don't think these will work in virtual machines also the product can be installed in cloud for ex: amazon aws, rackspace etc.

Was it helpful?

Solution

Disclosure: I work for License4J.

You can use a combination of hostname, mac address, disk volume id etc as a hardware ID, so it works on both physical and virtual machines. Trial license is just a normal license with a limited validity period (e.g. it expires after 30 days). You can also query available ntp servers to validate license expiry, so system clock change can be detected.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top