Pour les clés de CD à l'ancienne, il s'agissait simplement de créer un algorithme pour lequel les clés de CD (qui pourraient être n'importe quelle chaîne) sont faciles à générer et à vérifier, mais le rapport entre les clés de CD valides et les CD invalides -keys est si petit qu'il est peu probable que deviner des clés de CD au hasard vous en obtienne une valide.
MANIÈRE INCORRECTE DE LE FAIRE:
Starcraft et Half-life ont tous deux utilisé la même somme de contrôle, où le 13e chiffre a vérifié les 12 premiers. Ainsi, vous pouvez entrer n'importe quoi pour les 12 premiers chiffres, et deviner le 13e (il n'y a que 10 possibilités), conduisant à l'infâme1234-56789-1234
L'algorithme de vérification est public et ressemble à ceci:
x = 3;
for(int i = 0; i < 12; i++)
{
x += (2 * x) ^ digit[i];
}
lastDigit = x % 10;
BONNE FAÇON DE LE FAIRE
Windows XP prend un certain nombre d'informations, les chiffre et met l'encodage des lettres / chiffres sur un autocollant. Cela a permis à MS de vérifier votre clé et d' obtenir en même temps le type de produit (résidentiel, professionnel, etc.). De plus, il nécessite une activation en ligne.
L'algorithme complet est assez complexe, mais bien décrit dans cet article (complètement légal!), Publié en Allemagne.
Bien sûr, peu importe ce que vous faites, à moins que vous n'offriez un service en ligne (comme World of Warcraft ), tout type de protection contre la copie n'est qu'un blocage: malheureusement, si c'est un jeu qui vaut la peine, quelqu'un va casser (ou du moins contourner) ) l'algorithme de clé CD et toutes les autres protections de copyright.
VRAIE FAÇON CORRECTE DE LE FAIRE:
Pour les services en ligne, la vie est un peu plus simple, car même avec le fichier binaire, vous devez vous authentifier auprès de leurs serveurs pour en faire usage (par exemple, avoir un compte WoW). L'algorithme de clé CD pour World of Warcraft - utilisé, par exemple, lors de l'achat de cartes de jeu - ressemble probablement à ceci:
- Générez un très grand nombre aléatoire cryptographiquement sécurisé.
- Conservez-le dans notre base de données et imprimez-le sur la carte.
Ensuite, lorsque quelqu'un entre un numéro de carte de jeu, vérifiez s'il se trouve dans la base de données et s'il l'est, associez ce numéro à l'utilisateur actuel afin qu'il ne puisse plus jamais être utilisé.
Pour les services en ligne, il n'y a aucune raison de ne pas utiliser le schéma ci-dessus; utiliser autre chose peut entraîner des problèmes .