Eh bien, traditionnellement les numéros de série sont des numéros de série .... Ainsi, le premier exemplaire sortant de la chaîne de production porte le numéro 0001, le suivant le numéro 0002 et le suivant le numéro 0003. Je pense que la plupart des gens peuvent comprendre cet algorithme.
Je pense que votre question porte en fait sur les clés de produit, qui utilisent un mécanisme similaire à celui de la signature de messages à clé publique - la clé de produit est la valeur cryptée, le programme possède une clé publique qui lui permet de vérifier que la clé est valide, mais seul le vendeur du logiciel possède la clé secrète pour "signer" la clé de produit. L'article de wikipedia sur signatures numériques possède le mécanisme général ; la seule condition est que pour qu'une clé soit saisie par l'utilisateur, elle doit être un peu plus courte qu'une clé PGP.
Si vous êtes limité à un numéro de série très court, il est peu probable qu'il soit assez grand pour stocker le résultat d'un mécanisme de signature typique, auquel cas il est assez courant d'utiliser une variante de somme de contrôle. Cette méthode présente l'inconvénient d'être facile à désosser - sa sécurité est due au fait que l'algorithme est "secret" plutôt qu'à des propriétés cryptographiques. Chaque produit aurait son propre algorithme, et ils sont généralement craqués assez rapidement.
Si vous avez 5 blocs de 5 caractères, vous avez 36^25 combinaisons, ce qui est plus grand que 2^128. Vous pourriez donc utiliser l'un des algorithmes de signature numérique standard qui génère un bit 128, puis convertir cette valeur en base 36.