Click here to Skip to main content
15,867,993 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
What are the steps to make a system like this:
1. User installs the software
2. Software generates a 'fingerprint' key derived from unique hardware ID's
3. Sends this key to the license server
4. Server checks this key if it is present validates it, if not, adds it in to database.
5. After each launch license is validated online.
I wonder if there is a better approach.

What I have tried:

I searched a lot but couldn't find any good solutions beside CryptoLense which is very nice, but since I'm a student it becomes a little expensive and I want to use it with a small application like there would be max ~20 users.
Posted
Updated 6-Sep-19 5:30am
v3
Comments
BillWoodruff 7-Sep-19 21:48pm    
"5. After each launch license is validated online."

What about off-line use ?

In all reality the process is not much different than validation of a user name and password; and from what you have provided your logic seems flawed, and I would suggest you rethink this process.

Your software generates a fingerprint which is a completely valid thought; and could be a great password source.
Step 4:
Server checks this key if it is present validates it, if not, adds it in to database.
The problem I see is here- the way I am reading it would allow any installation to generate a valid key, as it would just be added to your license database if it does not already exist.

I do see a rather simple solution, and that would be to use the other half of the username/password combination. Add a "license" of some sort as the username and then that could only be used once- it could even be email address or the associated order number of the purchase. This would allow you to have control of how many times this is installed as you would have a record of valid licenses that can generate passwords
 
Share this answer
 
Comments
Member 12766259 6-Sep-19 11:34am    
If user reinstalls the program it can't be added to the database since the cipher will generate the same key because hardware Id's are constant.
MadMyche 6-Sep-19 14:41pm    
Exactly- the Hardware IDs would be the same so the HardwareID and Key would validate; however if it was added on a new machine it would be be added to, according to your post
 
Share this answer
 
v3
Comments
Maciej Los 6-Sep-19 3:42am    
5ed!
BillWoodruff 7-Sep-19 21:47pm    
+5
Quote:
5. After each launch license is validated online.

This means that:
- if license server is down, not legitimate user can use your program.
- if user is offline or have a problem with internet, he can't use your program.
Isn't it a little bit extreme ?
 
Share this answer
 
Comments
Member 12766259 6-Sep-19 4:15am    
It is a program which does some web automation, if there is no internet users can't use it anyway
Patrice T 6-Sep-19 8:00am    
You forgot to tell it in question.
But the first case is still valid.

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900