Soll ich meinen Lizenzschlüssel Ausgabe von reinem md5 Ausgang auf einen gemeinsamen „XXXX-YYYY-ZZZZ“ Typ-Code ändern?

StackOverflow https://stackoverflow.com/questions/4666262

Frage

Ich bin ein einfaches Lizenzschlüssel-System zu schaffen, um „hält ehrlich Leute ehrlich“. Ich weiß nicht über besonders strenge Kryptographie kümmern.

Wenn sie verärgert mit den Demo-Einschränkungen zu bekommen, gehen sie auf meine Registrierungs-Website, zu bezahlen, und geben Sie mir ihre E-Mail. Ich gebe ihnen einen Lizenzschlüssel.

Ich bin es wirklich einfach zu halten, so:

license_key = md5(email + "Salt_String");

Ich habe PHP und C # Funktionen, die denselben Algorithmus laufen und den gleichen Schlüssel erhalten.

Das Problem ist, dass der Ausgang dieser Funktionen ist eine 32-stellige Zeichenfolge wie:

A69761CF99316358D04771C5ECFCCDC5

Welche potenziell schwer zu merken / Typ. Ja, ich weiß über copy / paste, aber ich möchte, um es einfach wirklich für alle Kunden der Zahlung der Software zu entsperren.

Soll ich konvertieren irgendwie diese lange Zeichenfolge in etwas kürzer?

Lassen Sie uns sagen ich nur die ersten 6 Ziffern verwenden, so: A69761

Es gibt natürlich viel mehr Verschlüsselungs Kollisionen in das, aber es wird überhaupt in der Praxis eine Rolle?

Jede andere Ideen der Sache mehr Menschen lesbaren / typisierbarem zu machen?

War es hilfreich?

Lösung

Von links nach 6-10 Symbolen werden ausreichen, um - der Anwender ohnehin nicht in der Lage sein, den Code zu erraten, und es wäre leicht, in eingeben. Auch gute Idee wäre, jede Lizenz auf dem Server zu registrieren, so dass Sie in der Lage sein werden, diesen Benutzer zu überprüfen ist wirklich ehrlich, und haben keinen Lizenzschlüssel an einem anderen Person geben.

Andere Tipps

Nach meiner Erfahrung, die den Benutzer auffordert eingeben oder kopieren / einfügen einen 30-stelligen Code in der Tat führt zu frustrierten Kunden. Es ist nicht, dass es so schwierig ist. Es ist einfach eine Hürde, dass die Menschen nicht kümmern.

Die Lösung, die ich verwendet habe, für mein Geschäft getrennt Versuch und gekauft Downloads haben. Um ihre lizenzierten Kopie, die Kundentypen in ihrer E-Mail-Adresse und ein kurzer Benutzer-ID auf dem Download-Formular. Eingabe nur die E-Mail automatisch erneut sendet die Benutzer-ID. Sie haben nicht danach zu fragen, sondern ein System automatisch nach oben zu schauen, was Code der Kundenbedürfnisse sind noch wichtiger als ein einfaches System, mit. Das Download-System sieht die Benutzerdetails in der Datenbank und bietet eine SetupSomeProductCustomerName.exe, der die Benutzerlizenz darin eingebettet hat. Dieses Setup installiert den lizenzierte Kopie des Kunden ohne weitere Identifizierung oder Server-Verbindungen erforderlich ist.

Dieses System hat sich für uns wirklich gut funktioniert. Der Kunde hat nur eine Datei zu sichern und keine Seriennummern zu verlieren sicherzustellen, dass sie die Software in Zukunft neu installieren können.

sagte, dass, wenn Sie es vorziehen, ein System zu verwenden, um eine Einweg-Hash verwenden, einfach einen Algorithmus verwenden, der einen kleineren Hash erzeugt. Z.B. CRC-32-Ergebnisse in 8 hexadezimalen Ziffern.

Es gibt keinen Punkt in der Hash kryptographisch sicher zu sein. Ein Cracker einfach zu Fuß durch den Code, kopieren Sie den gesamten Code-Block, dass mutiert die E-Mail-Adresse in den Lizenzschlüssel, und fügen Sie, dass in ihre keygen. Dann können sie die Lizenzschlüssel für jede E-Mail-Adresse generieren. Sie können das tun, unabhängig davon, wie komplex Ihr Hashing-Algorithmus ist.

Wenn Sie dies verhindern wollen, müssen Sie Public Key-Verschlüsselung verwenden, die Ergebnisse in den Schlüsseln, die viel zu lange in schreiben. Wenn Sie diesen Weg gehen, müssen Sie entweder Ihre Kunden mit langen Schlüsseln ärgern zu einfügen in oder separate Schlüsseldateien oder verwenden Sie Ihre persönliche Download-System I oben beschrieben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top