Si vous ne vous souciez pas de supprimer votre chèque, il vous suffit d'ajouter une instruction if
qui valide si la clé de licence configurée est valide ou non. J'ai remarqué que vous avez mentionné que vos clés de licence étaient simplement des hachages SHA1. Vous pouvez facilement ajouter 4 caractères supplémentaires au hachage, que vous pouvez utiliser comme somme de contrôle.
Par exemple:
function generate_key()
{
$serial = sha1(uniqid(rand(), true));
$checksum = substr(md5($serial), 0, 4);
return $serial . $checksum;
}
function verify_key($key)
{
$serial = substr($key, 0, 40);
$checksum = substr($key, -4);
return md5($serial, 0, 4) == $checksum;
}
Ceci est un exemple très simple, mais il est tout simplement pédagogique. Essentiellement, vous devez valider si la clé de licence est valide sur le serveur de l'hôte au lieu de faire un ping sur un script sur votre serveur. L'inconvénient de ceci est que n'importe qui serait capable de générer une clé valide en ouvrant le code source et en trouvant le validate_key
.
Vous pourriez l'avoir appeler un script externe pour faire le verify_key
, mais cela en vaut-il vraiment la peine? En outre, vous allez sacrifier le temps de chargement de la page pour vérifier la clé. Je me souviens de vBulletin ayant un système de licence très facile à cracker, mais ils avaient une image 1x1 cachée dans quelques sections qui ping un script sur leur domaine. En utilisant les journaux, ils ont pu déterminer quels domaines hébergeaient des copies illégales de leur logiciel et ils ont simplement envoyé une lettre d'avocat à l'administrateur.
Si vous vouliez une solution plus robuste, je suggérerais peut-être de regarder dans Zend Guard, mais vous semblez ne pas se soucier des gens qui craquent votre logiciel alors personnellement, je voudrais simplement aller aussi simple que possible.
Il ne les dissuadera pas vraiment; ceux-ci les connaissances vont supprimer le contrôle et rendre cette version disponible; Ceux qui n'ont pas les connaissances utiliseront à la place - voir tous ces films qui étaient une fois sur DVD avec un cryptage au-delà de la capacité de la plupart des utilisateurs à supprimer, mais facilement accessible maintenant sans aucun cryptage du tout. –
Que voulez-vous dire par une clé API? L'utilisation traditionnelle est similaire à «un composant secret d'une URL que vous utilisez pour automatiser des actions», mais il semble que vous vouliez dire «clé de produit». Quant à la question elle-même, vous avez raison - ce serait vraiment une perte de temps, et vous n'avez pas besoin de savoir PHP pour google "[votre application] contourner la clé" – Robert
@El Yobo..en fait, il va les dissuader ... J'ai vu de nombreux plugins avoir cette clé API ... Le point ici est que je ne me soucie pas vraiment si cela les dissuade ou pas, mais je veux juste cette fonctionnalité .. –