Ese código no lo puedo publicar, puesto que pertenece a la empresa para la que trabajaba, lo que sí puedo hacer es comentarte cómo se generaba y no te debe ser muy complejo de crear.
En nuestro caso teníamos en cuenta alguna información del ordenador; Hay que decir que inicialmente se obtenía mucha información, poco a poco nos dimos cuenta de que cuanta más información recopiles, más a menudo cambia esa información.
Por ejemplo, si te quedas con el DNI del cliente, Razón Social, Serial del disco duro (
*)(
*), Bios Date (
*), SN de Windows(NOTA1), Versión de windows (
*), MAC Address (
*) (
*),.... cada vez que cambia unos de estos parámetros en un cliente normal, se "estropea" el Serial y el cliente te debe llamar para que se lo reenvíes.
Una vez obtenida esta información que quedas con una parte de cada una de ellas y al número que sale le aplicas algun algoritmo de encriptación (simétrico, si no te quieres complicar mucho...)
Ya tienes tu
Número de Cliente; Ese es el número que el cliente te envía; A eso le aplicas alguna transformación y le devuelves el
Número de Serie.
Cuando ejecutas tu programa debes comprobar que esos dos números siguen coincidiendo...
NOTA1:
Código Delphi
[-]
key := 'Software\Microsoft\Windows\CurrentVersion';
Name := 'ProductID';
Name := 'ProductKey';