Welche Methoden / Bibliotheken / Tools würden die Leute zur Generierung von Lizenzschlüsseln vorschlagen (diese schönen AAAAA-AAAAA-AAAAA-AAAAA-Dinge, die Sie bei der Registrierung von Software eingeben)?
Gibt es irgendwelche Fallstricke, auf die Sie bei der Implementierung achten sollten?
(Im Moment interessiert mich dies eher allgemein als sprachspezifisch. Geben Sie einfach an, welche Sprache Sie verwenden, wenn Ihre Lösung sprachspezifisch ist.)
Dieselbe Frage wurde auf SO gestellt und die akzeptierte Antwort ist ziemlich gut. Der allgemeine Kern ist:
quelle
Meine bevorzugte Methode besteht darin, 10.000 zufällige Lizenzzeichenfolgen zu generieren, SHA1 (oder MD5) -Hashs oder HMAC-Hashs zu erstellen und SHA1 / MD5-Hashs ganz oder teilweise in die ausführbare Datei selbst aufzunehmen. Wenn eine Lizenzzeichenfolge eingegeben wird, verwenden Sie einfach verschleierten Code, um den Hash der Zeichenfolge zu generieren und ihn mit den in der Liste aufgeführten zu vergleichen. Wenn es übereinstimmt, ist es eine gültige Lizenz. Wenn Ihnen die Lizenzen ausgehen, veröffentlichen Sie eine neue Version mit mehr Zeichenfolgen.
Es reicht aus, nur die ersten 96-Bit des SHA1-Hashs zu verwenden. 10.000 Lizenzen würden also weniger als 120 KB benötigen. Eine algorithmische Erzeugung von Schlüsseln oder die Erzeugung eines Schlüsselgenerators wäre unmöglich. Die einzige Sicherheitslücke, über die Sie sich Sorgen machen müssen, ist Reverse Engineering oder Bypassing. (Oder jemand, der seinen gültigen Schlüssel verteilt.)
quelle