I'm having an issue here: I have created an application that is like a computerized/digitized version of my school's yearbook this year. I would like to give the program out ONLY to those that have purchased the book. The program is programmed in java and I can do key codes/serial numbers/cd keys, but I'm not sure how to do this. I don't want people that haven't bought the yearbook to have access to the program, and I don't want the people that have purchased the yearbook to give out the password/code to their friends so they can use it.
We can set up an online transaction in case the people that wanted a yearbook and didn't buy it can get the program at a cheaper price, but we want it free for those that bought the actual book. Its a challenge, but we can do databases inside the program and online, but I'm not sure.
Things I've thought about trying:
but all of our ideas don't work for what we want.
The easiest approach that comes to mind (though not great from a usability point of view):
People can still cheat, but it requires them to repeatedly reinstall the software every time they want to run it and that's annoying. Annoyance kills piracy :)
Bonus points: