Ich ging davon aus das du praktische Erfahrung hast. Immerhin möchtest du ja wissen wie man seine Arbeit durch SerialKeys schützt. Das setzt doch voraus, dass man etwas entwickelt hat was schützenswert ist.
Naja, vllt. hilft es dir ja trotzdem:
Folgendes use case:
1 Spieler kauft Software auf Webseite (ebay, paypal knopf, whatever)
2 Dein payment stösst auf deinem Webhost die Produktion an (ausgelöst durch paypal)
2 Du selber stösst per Knopf die Produktion an
2.1 Webserver generiert Serial Key, im simpelsten Fall einen langen hash aus den Käuferdaten
2.2 Webserver schickt Software und Serial Key per email an Käufer
2 Du selber schreibst dir einen Key und schickst die Sachen per Email nachdem du Ebay / paypal gecheckt hast
3 Käufer installiert und startet Software
4 Software setzt sich mit deinem Payment über inet in Verbindung und checkt die Lage
Mal abgesehen von dem Overkill sich die Payment Sachen zu konfigurieren ... -> du brauchst du eine Möglichkeit (4) um
öffentlich deiner Software beim Kunden die Möglichkeit zu geben seinen Status zu prüfen:
Du brauchst eine Webseite bei einem Web Hoster mit PHP und optimalerweise noch ne mysql Datenbank (sonst musst du die Keys in einem Textfile speichern. Wär auch kein Ding.
Software auf deinem Webhost: (php) / Beispiel
// daten aus datenbank holen
$dbh = mysql_connect('localhost', 'username', 'password');
$result = mysql_query("SELECT ip, timestamp FROM serials WHERE key='" . $_GET['key'] . "'");
$row=mysql_fetch_assoc($rs);
// ergebnis?
if (!$row) {
// nein, kein zugriff,
echo "ABGELEHNT"
} else {
echo $_GET['key'];
}
Das ganze läßt sich noch sehr sehr sehr verfeinern.
Software beim Kunden: (autoit)
$serialKeyFromFile = FileReadLine("serial.key");
InetGet ( "http://serial.meinhost.de?ip=10.20.30.40&key=" & $serialKeyFromFile, "c:\temp\serial.temp" );
While @InetGetActive
sleep(123);
wend
$serialKeyFromHost = FileReadLine("c:\temp\serial.temp");
Jetzt Keys vergleichen. Je nach Einschränkung kann in c:\temp\serial.temp auch eine direkte Ablehnung stehen die eine bestimmte Anzeige beim User zB "keine Doppellnutzung!" macht.
have fun