views:

255

answers:

4

I have a small VC++ project that I would like to market. Can anyone point me in the right direction in terms of writing a "serial key" system. I have no idea how these things are implemented.

+3  A: 

Don't try to write one, buy it in. These things are way more complex than any of us tend to think, and your time is better spent working on your product.

Bob Moore
A: 

typically it is based on a hash of the pc's mac address or some other ID that can be hashed to match a key. the level of security you want to put into it depends on how secure your application needs to be. here is a simple example http://www.codeproject.com/KB/security/VBNetSoftwareProtection.aspx, but if it's too easy to crack, it will be easy to generate keys. some Google searches should give other possible solutions and/or ready made software for this.

Jeff Storey
A: 

Are you looking for serial/activation pair system? It could be a fair simple solution to implement (and robust even in basic implementation) just looking for non-invertible functions - One-way functions. Generate a random number on your client, send it to a server, generate a corresponding "activation" key (private hash of serial #) and then check it locally on the client against public function. Simple and effective.

My two cents.

ZZambia
+1  A: 

A previous discussion with some good points can be found at: http://stackoverflow.com/questions/599837

Edward Leno