I am developing a desktop based software in Java using IDE Netbeans 7 and database MySQL.
Now i want to distribute this software and protect it from piracy.I want to implement online licence verification.That means when user will install the software a number based on hardware configuration will be sent to me.And i will provide a licence key according to that number.If user will give input that key then the full version of the software will run.
But the problem is that,i have no idea about how to implement these things.Such as:
what are the steps?
What things will i need for this?
How the online communication should be established?such as sending number of hardware ,key and verify when user input the key number etc.
So, in details procedure and example or any useful link can help me a lot to do the job.Please help if you can.Thanks in advance.

Okay... I do something a little more sophisticated than what I'm about to tell you, but it is the basics of what I do.

1. Check for the existance of a (binary) "Client" file.
2. If the file does NOT exist;
a) get hardware info and pop up a dialog with the hardware info,
asking your customer to register the software
b) send your customer the (binary) "Client" file with the hardware info.
3. If the file DOES exist, verify the hardware info.

There are a lot of different piracy protection schemes
and this is just one of them.

If you KNOW that your customer will have a constant internet connection,
you could get your software to call a web service which will verify that the software is registered.

Thanks hfx64.I understand your idea.
I am sure that the user will have internet connection.Now what should be the steps?
What is the web service?Do i need to build that service?
How to communicate with that?
Is the communication like client-server communication?I mean sending query to check if any user input exist in the server.
Please give me detail idea or any link if you can.

Google (or Wikipedia) "web service" for an explanation.
Yes, you would have to build it.
I have never had to build one, so I don't know how to, or how to call one (in Java).
Sorry I can't be of any more help for this.

This article has been dead for over six months. Start a new discussion instead.