I want to create an app that is only runnable on one machine (PC). The software should be activated through an activation key (the user sends me the activation serial and I will send him the code). Any suggestions on how should I do this? Thanks.
Asked
Active
Viewed 1,237 times
1
-
possible duplicate of [Best activation key software for .NET application?](http://stackoverflow.com/questions/118031/best-activation-key-software-for-net-application) – Mat Oct 23 '11 at 11:14
-
@Mat: It might be a dupe but not of _that_ question. – H H Oct 23 '11 at 11:39
-
Actually it's not a duplicate. I want to implement my own solution and I don't want to use any off-the-shelf solution. – Alireza Noori Oct 23 '11 at 12:01
-
@AlirezaNoori, still there are lots of questions about this on SO, with all the pros and esp. the cons of doing so. You have a better question when you can point out what sets this apart from the others. – H H Oct 23 '11 at 13:19
1 Answers
2
In addition to the answers provided in link, most simple solution I met was actually to recover ProcessorID and hash it with some encryption algo with Start and End date, if there is any date limit management.
Just to give a basic idea:
Good: It's easy to develop and it's free.
Bad: if it depends on start and end date, you basically lookup on PC, so to trick the control it's enough to put your Computer's date back.

Abdur Rahman
- 657
- 16
- 46

Tigran
- 61,654
- 8
- 86
- 123
-
1How about using the serial number from the operating system disk instead of the processor ID. It is likely that to change the disk SN will re-quire re-activation of windows which adds complexity to anyone wanting to run an unauthorized copy of the software. – John Alexiou Oct 23 '11 at 19:50
-
@ja72: The disk is a subject to change, but the processor is definitely has less chances to be changed. So from Disk versus Processor, in this case, I would choose Processor as more reliable data source for machine dipendent (hardware) key. – Tigran Oct 23 '11 at 19:53
-
I think the best way is to use all of them (Processor, HDD, etc.) and add a 1 or 2 change tolerance. This way the software will still work if the user changes one or two of these components. – Alireza Noori Oct 25 '11 at 23:37