Over the weekend I finally spent some time to tackle the problem of registration keys. Particularly, generating them. The last piece of software I attempted this was WakeUp! Alarm Clock, with a very cheesy, homegrown routine for creating a key tied to the user’s name. I never ran across any cracks/keygens for WakeUp! but I’m 99.999% sure that that’s because I charged a meager $5 for it.
With Chef, however, I’m planning on a steeper price tag and don’t want to make the mistake of using an easily cracked scheme. So, I turned my attention to the cryptographic services provided by .NET and now have a simple and, what should be, effective solution using public key cryptography.
I haven’t integrated it into the application yet, but that shouldn’t take too long. Once the code is in place, I’ll start strong naming the assemblies and even obfuscate them. The obfuscation will prevent the casual snooper from using a tool such as Reflector to simply copy code and recompile it into a working replica of Chef. The strong naming will then ensure that someone cannot release a cracked version of my assemblies with the registration limitations removed. Pretty cool I think.
Today I spent some time reviewing several payment processing options. Currently, RegNow is the leading candidate.