Wenn Sie sich nicht darum kümmern, dass Personen Ihre Prüfung entfernen, müssen Sie nur eine if
-Anweisung hinzufügen, die überprüft, ob der konfigurierte Lizenzschlüssel gültig ist oder nicht.
Ich bemerkte, dass Sie erwähnt haben, dass Ihre Lizenzschlüssel einfach SHA1-Hashes waren. Sie könnten einfach zusätzliche 4 Zeichen an den Hash anhängen, die Sie als Prüfsumme verwenden könnten.
Zum Beispiel:
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;
}
Dies ist ein sehr einfaches Beispiel, aber es ist einfach Lehr.
Im Wesentlichen würden Sie überprüfen, ob der Lizenzschlüssel auf dem Server des Hosts gültig ist, anstatt ein Skript auf Ihrem Server zu pingen.
Der Nachteil davon ist, dass jeder in der Lage wäre, einen gültigen Schlüssel zu erzeugen, indem er den Quellcode öffnet und validate_key
findet.
Sie könnten es ein externes Skript aufrufen, um die verify_key
zu tun, aber ist es wirklich die Mühe wert? Außerdem müssen Sie die Ladezeit der Seite opfern, um den Schlüssel zu überprüfen.
Ich erinnere mich, dass vBulletin ein sehr einfach zu knackendes Lizenzierungssystem hatte, aber sie hatten ein verborgenes 1x1 Bild in ein paar Sektionen, die ein Skript auf ihre Domäne pingen. Anhand der Logs konnten sie feststellen, welche Domains illegale Kopien ihrer Software hosten, und sie schickten einfach einen Anwaltsbrief an den Administrator.
Wenn Sie eine robustere Lösung wollten, würde ich vorschlagen, vielleicht in Zend Guard suchen, aber Sie scheinen nicht zu kümmern Menschen, die Ihre Software so persönlich knacken würde ich würde so einfach wie möglich gehen.
Es wird sie nicht wirklich sogar davon abhalten; diese werden das Wissen entfernen den Scheck und machen diese Version verfügbar; diejenigen, die nicht wissen, werden das stattdessen verwenden - sehen Sie all jene Filme, die einmal auf DVD waren, mit einer Verschlüsselung, die die meisten Benutzer nicht mehr entfernen können, die aber jetzt ohne jegliche Verschlüsselung leicht zu erreichen ist. –
Was genau meinen Sie mit einem API-Schlüssel? Die herkömmliche Verwendung entspricht der "geheimen Komponente einer URL, die Sie zum Automatisieren von Aktionen verwenden", aber es klingt wie "Produktschlüssel". Wie für die Frage selbst, Sie haben Recht - es wäre wirklich eine Verschwendung von Zeit, und Sie müssen nicht wissen, PHP zu googeln "[Ihre App] Schlüssel umgehen" – Robert
@El Yobo .. tatsächlich wird es sie abschrecken ... Ich habe viele Plugins gesehen haben diesen API-Schlüssel ... Der Punkt hier ist, ist mir nicht wirklich egal, ob es tut oder nicht abschreckt, aber ich will nur diese Funktion .. –