Frage

Ich frage mich, wie Seriennummer Generatoren und Validierungsarbeiten. Mein Ziel wäre es, eine Seriennummer mit fünf Teilen zu erzeugen, bestehend aus Zahlen und Buchstaben nur.

Ich genieße als Hobby-Codierung und würde mich kein professioneller Programmierer nennen. Allerdings bin ich sehr daran interessiert, wie diese interessanten Funktionen arbeiten technisch meine Meinung nach erweitern.

Für Hinweise, Erfahrungen oder geschrieben Algorithmen geschätzt.

War es hilfreich?

Lösung

Brandon Staggs schrieb einen guten Artikel auf ein Teilseriennummer Verification System Implementierung. Die Beispiele sind in Delphi geschrieben, könnten aber in anderen Sprachen umgewandelt werden.

Andere Tipps

Holen Sie sich eine public / private Schlüsselpaar . Generieren Sie Sequenznummern (10000, 20000, 30000, 40000, ....) das haben einige charakteristische identifizieren (zB teilbar durch 10000). Verschlüsseln Sie die Zahl Ihrer privaten Schlüssel. Encode diesen Wert etwas für Menschen lesbaren System ( Basis 32 oder 64 ) und die Werte in Gruppen trennen, damit es für die Menschen leichter zu analysieren. Verteilen Sie die codierte Seriennummer mit jedem Verkauf Sie App.

Irgendwo in der App haben Sie den öffentlichen Schlüssel versteckt. Wenn ein Benutzer auf eine codierte Seriennummer eingibt, ist es zunächst zurück zu binären dekodieren. Verwenden Sie den öffentlichen Schlüssel, um es zu entschlüsseln. Überprüfen Sie, dass es durch 10000 teilbar ist.

Der schwierige Teil ist bei der Umsetzung - den öffentlichen Schlüssel in der App versteckt, so dass sie nicht leicht ersetzt werden können. Die Wahl einig Sequenz, die Sie leicht erkennen können, aber nicht aus Werten führen. Verschleiern die App so, dass jemand nicht leicht über die ganze Check überspringen. etc ...

Nun, sind traditionell Seriennummern Serien ... Zahlen. So ist das erste Beispiel aus der Produktion hat sn 0001 dann die nächste ist 0002 und die nächste ist 0003. Ich denke, dass die meisten Menschen, dass Algorithmus arbeiten können.

Ich glaube, Sie tatsächlich über Produktschlüssel zu fragen, die einen ähnlichen Mechanismus zum öffentlichen Schlüssel Nachrichtensignierung verwenden - der Product Key der verschlüsselte Wert ist, wird das Programm einen öffentlichen Schlüssel hat, die es zu überprüfen, ermöglicht, dass der Schlüssel gültig ist, aber nur der Software-Anbieter hat den geheimen Schlüssel zu ‚Zeichen‘ der Produktschlüssel. Wikipedia-Artikel auf digitalen Signaturen allgemeinen Mechanismus hat; die einzige Voraussetzung ist, dass für einen Schlüssel durch den Benutzer eingegeben werden, um es ziemlich viel kürzer ist als ein PGP zu sein hat.

Wenn Sie auf eine sehr kurze Seriennummer beschränkt sind, dann ist es unwahrscheinlich, groß genug sein, um das Ergebnis eines typischen Unterzeichnung Mechanismus zu speichern, wobei in diesem Fall ist es durchaus üblich, nur eine Variante der Prüfsumme auf sich aus. Das hat den Nachteil, dass sie leicht Reverse Engineering - es ist die Sicherheit ist, da der Algorithmus ist ‚Geheimnis‘ nicht aufgrund irgendwelcher kryptographischer Eigenschaften. Jedes Produkt würde seinen eigenen Algorithmus hat, und sie in der Regel ziemlich schnell geknackt bekommen.

Wenn Sie 5 Blöcke von 5 Zeichen haben, haben Sie 36 ^ 25 Kombinationen, die größer als 2 ^ 128 sind, so könnte eine der Standard-Digital-Signatur-Algorithmen verwendet werden, die eine 128-Bit erzeugt, wandeln dann diesen Wert 36 zu stützen .

Eine GUID ( "Globally Unique Identifier") könnte eine einfache Möglichkeit, dies zu lösen:

http://en.wikipedia.org/wiki/Globally_Unique_Identifier

Guids enthalten 16 Bytes und werden am häufigsten in Text als Folge von hexadezimalen Ziffern geschrieben wie:

3F2504E0-4F89-11D3-9A0C-0305E82C3301

Und die meisten Programmiersprachen sollte eine GUID mit einem der verfügbaren Bibliotheken generieren können.

Sie können einen Zufallszahlengenerator verwenden und die Ausgänge in einer Datenbank speichern. Im Fall einer Aktivierungsanforderung, überprüfen Sie nur, wenn die Serien in der Datenbank und die Serien markieren als „benutzt“.

Natürlich ist dies eine Internetverbindung benötigt, ist aber gut gegen „einmal kaufen, verwenden viele, viele Male“ Verfahren und bei Support-Call, können Sie diese serielle für eine andere Neuinstallation aktivieren.

Später bearbeiten. Sie könnten auch für das Internet Überprüfung eine verschlüsselte und authentifizierte Verbindung, wie ein HTTPS man verwenden muss

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