1

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.

Harsh Baid
  • 7,199
  • 5
  • 48
  • 92
Alireza Noori
  • 14,961
  • 30
  • 95
  • 179
  • 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 Answers1

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
  • 1
    How 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