Quelles méthodes / bibliothèques / outils les gens suggéreraient-ils pour générer des clés de licence (ces jolies choses AAAAA-AAAAA-AAAAA-AAAAA-AAAAA que vous avez insérées lorsque vous enregistrez un logiciel)?
Des pièges à surveiller lors de leur mise en œuvre?
(Pour le moment, cela m'intéresse en général, plutôt qu'en termes de langue, alors indiquez simplement la langue que vous utilisez si votre solution est spécifique à une langue).
Cette même question a été posée sur SO et la réponse acceptée est plutôt bonne. L'essentiel général est:
la source
Ma méthode préférée est de générer 10 000 chaînes de licence aléatoires, SHA1 (ou MD5) de les hacher ou HMAC, et d'inclure tout ou partie du hachage SHA1 / MD5 dans l'exécutable lui-même. Quand une chaîne de licence est entrée, vous utilisez simplement un code obscurci pour générer le hachage de la chaîne et le comparer à ceux de la liste. Si cela correspond, c'est une licence valide. Si vous manquez de licences, publiez une nouvelle version avec plus de chaînes.
Utiliser uniquement les 96 premiers bits du hachage SHA1 est suffisant. Donc, 10 000 licences prendraient moins de 120 Ko. La génération algorithmique de clés ou la création d'un générateur de clés serait impossible. La seule vulnérabilité à craindre est le reverse engineering ou le bypass. (Ou quelqu'un qui distribue sa clé valide.)
la source