Le meilleur moyen est de ne pas faire cela. Cela ne causera que des problèmes pour vous et vos clients payants. Cela dit, si vous voulez continuer, les meilleures pratiques aujourd'hui impliquent des schémas assez complexes. La meilleure façon d'obtenir un ID est d'utiliser plusieurs ID: s, comme ID CPU, ID du disque dur, adresse MAC, etc. Pour identifier un ordinateur, vous devez faire correspondre 3/5 ID: s ou quelque chose comme ça. Ensuite, le numéro de licence ne sera pas rompu même si un utilisateur modifie une carte réseau ou un processeur défectueux.
Vous avez toujours le problème si un utilisateur remplace complètement son ordinateur.
Pour résoudre ce problème, vous avez besoin d'un serveur de licences sur Internet où votre logiciel doit revalider sa licence à intervalles réguliers. Si un nouvel ID d'ordinateur tente de valider une licence précédemment attribuée à un autre ID, le nouvel ordinateur obtient la licence et l'ancien ID est bloqué lors de la revalidation. Vous devez imposer une limite raisonnable à la fréquence à laquelle les nouveaux ordinateurs peuvent "prendre le contrôle" d'une licence existante. Essayez de regarder d'autres logiciels commerciaux comment ils le font. Prenez Windows par exemple. Bien que vous ne puissiez pas étudier la mise en œuvre exacte, vous pouvez étudier l'expérience de l'utilisateur final et la documentation de l'utilisateur final pour trouver les cas d'utilisation requis pour modifier le matériel et transférer les licences vers de nouveaux ordinateurs.
Si vous ne voulez pas que les utilisateurs fâchés téléphonent à votre téléphone portable privé à 2 heures du matin pour demander pourquoi votre logiciel s'est soudainement verrouillé, vous devez y réfléchir et tester de nombreux cas d'utilisation correctement.
Pourquoi voulez-vous le vendre? Pourquoi ne pas essayer une licence de source fermée pour les logiciels gratuits et les annonces dans le programme pour l'acheter? Tout sera craqué :) – kravemir