This system currently uses a unique id (which could be the game_id, and object id, or anything, really) to create the serial code, as well as a name and some obfuscation methods. The serial code length usually tends to be the same length, about 20-35 characters, but can vary on very long strings. Most of the resulting serial code is sometimes the same depending on the actual string. So far I can't find any holes in it.
This serial code mechanism is released under the GPL or LGPL, whichever suits your needs best, and the mechanism is patent free, as far as I know .
gmserial_create(string name, int unique_id): Create a serial code
gmserial_verify(string serial, string name, int unique_id): Verify a serial code
Here are some sample results:
Blah1 TKT44F502CF4HU2UN0MJCNDH Blah2 TKT44F502CF4HU2LN0NJ0GXC John Smithington FTF22905FFF0DU9UN2GGDHD5 Joe Joe Joe TKT44FF00CF4LU5NNCGGDMX0
Please credit me in your help file when you use this, if at all possible. Thank you.
Edited by tgohome, 15 May 2007 - 08:02 PM.