Gibt es Einschränkungen für das Betriebssystem? Ich denke, folgender Ansatz wird ganz einfach sein:
Wählen Sie einen Weg, um die Maschinen-ID zu erhalten. Zum Beispiel kann dies MachineGuid
Registrierungseintrag in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography
sein. ( Generieren einer eindeutigen Maschinen-ID )
Definieren Sie Funktionen, die Sie lizenzieren möchten, und die Möglichkeit, sie zu identifizieren. Sie können sie einfach benennen. Wenn Ihr Produkt einfach ist, kann es selbst ein Feature sein.
Erstellen Sie ein öffentliches / privates Schlüsselpaar.
Rufen Sie die Computer-ID des Kunden auf eine bestimmte Weise ab. Sie können ihn bitten, es manuell zu senden, oder Sie können ein einfaches Dienstprogramm erstellen oder es kann ein spezieller Befehl in Ihrer Anwendung sein.
Kombinieren Sie Feature-ID und Computer-ID in irgendeiner Weise und signieren Sie Ergebnisse mit Ihrem privaten Schlüssel. Zum Beispiel können Sie diese Kombination durch Verkettung herstellen. In diesem Fall könnte die Ergebniszeichenfolge wie folgt aussehen: "YourApplicationName-12345678-9abc-def0-1234-56789abcdef0"
Die Signatur besteht aus einer Folge von Bytes. Wenn Sie sie also in Textform übergeben möchten, sollten Sie sie konvertieren. Zum Beispiel können Sie die Signatur in Base64 Zeichenfolge konvertieren. Die Kombination aus Feature-ID, Computer-ID und Signatur ihrer Kombination ist ein Lizenzschlüssel!
Fügen Sie den öffentlichen Schlüssel in Ihre Anwendungsverteilung ein und fügen Sie Logik zur Lizenzüberprüfung hinzu. Wenn die Lizenz gültig ist, sollten Sie überprüfen, ob sie auf dem richtigen Rechner und in der korrekten Anwendung verwendet wird.
Mehr zu den Operationen mit öffentlichen / privaten Schlüsseln hier .
Bitte sagen Sie, wenn etwas unklar ist, und ich werde versuchen, eine detaillierte Antwort zu geben.
BEARBEITEN: Ich bin mir sicher, dass die Implementierung all dies in einem Tag erledigt werden kann, aber ich stimme anderen zu, die Ihnen vorschlagen, bestehende Lösungen zu verwenden. Es gibt viele verschiedene Plattformen und Programmiersprachen.
Warum holst du nicht einfach jemanden von jemand anderem? Wenn Sie nur einen Tag reinlegen wollen, werden Sie kein gutes Produkt bekommen.
Fügen Sie die Funktionen des Produkts (Anzahl der Benutzer, Host-IP, Ablaufdatum, was auch immer) in eine Nur-Text-Datei ein. Unterschreiben Sie die Datei mit einem öffentlichen Schlüssel und überprüfen Sie die Signatur zur Laufzeit.
Wenn sie motiviert sind, können sie den Code dekompilieren, die Schecks oder was auch immer herausziehen, aber es wird Manipulationen verhindern, und es wird nett und offiziell aussehen.
Es gibt keine Möglichkeit, an einem Tag einen guten Job zu machen, und die Chancen stehen gut, dass der Gesamteffekt negativ sein wird. Es wird Ihre loyalen und ehrlichen Kunden ärgern und es wird nicht unehrliche stoppen.
Stattdessen verbringen Sie den Tag damit, herauszufinden, wie viel Piraterie Ihr Produkt bekommt. Sobald Sie das wissen, können Sie abschätzen, wie viel Geld Sie verlieren und wie viel Aufwand Sie wirklich in Schutz oder andere Ansätze investieren sollten.Wenn Sie es dennoch tun möchten, ist der einfachste Weg, einige Daten zu sammeln, die für die Installation eindeutig sind (Benutzername des Betriebssystems, E-Mail-Adresse, CPU / Motherboard-Seriennummer - was immer Sie daran binden wollen), fragen Sie den Benutzer um es an Sie zu senden und einen Lizenzschlüssel zu generieren, indem Sie ihn mit Ihrem privaten Schlüssel verschlüsseln. Ihre Software sollte die gleichen Daten sammeln, die Lizenz mit Ihrem öffentlichen Schlüssel entschlüsseln und die beiden Blobs vergleichen.
Wenn Sie nur Pseudo-Code brauchen (was lang / platform?) Sie können die MAC-Adresse des Computers übernehmen (die eindeutig sein soll) und eine Funktion zusammenstellen, die einige andere Computerparameter kombiniert - und sicherstellen, dass Sie sie jedes Mal validieren, wenn die Apps gegen Ihre eigene Datenbank laufen, wobei die E-Mails des Benutzers in dieser Zeile bleiben.
Wenn sich etwas ändert - die Software funktioniert nicht, aber der Benutzer kann einen neuen Schlüssel anfordern - mit der gleichen Mail - dann können Sie den alten Schlüssel widerrufen und ihm einen neuen geben.
Einfachster Lizenzgenerator: Eine INI-Datei mit einer gesetzten Prüfsumme, die den Kundennamen und Informationen darüber enthält, welche Module aktiviert sind. Es wird ziemlich einfach sein, für einen Hacker zu brechen, aber für Nicht-Hacker ist es sicher. Der Name muss in der Ausgabe der öffentlich angezeigten App sichtbar sein, damit andere potenzielle Kunden die Lizenzdatei nicht verwenden können.
Tags und Links security licensing license-key