![]() |
AW: Algorithmus für eine Serialnummer
Das Problem mit den Namen wäre z.B. "Hans Meyer", den es doch öfter gibt und dann identische Serials erzeugt. Ich würde wirklich eine GUID nehmen:
Delphi-Quellcode:
uses Sysutils;
var NewGUID: TGUID; begin CreateGUID(NewGUID); writeln (GUIDToString(NewGUID)); end; |
AW: Algorithmus für eine Serialnummer
Zitat:
Alternativ kannst du ja auch nach der Steuer-ID fragen, wenn alle deine Kunden aus Deutschland kommen. |
AW: Algorithmus für eine Serialnummer
Wenn man nur einen Namen zum generieren eines Schlüssels verwendet kann man es sich direkt sparen überhaupt seine Anwenung mit
einer Serialnummer zu verschlüsseln. Schlüssel aus Name -> Hardware -> Hash generieren in Resource speichern welche auch immer anschließend ne Checksumme generieren. Schlägt die fehl Anwendung wird beendet. gruss |
AW: Algorithmus für eine Serialnummer
Irgendwie werden hier zwei Konzepte durcheinandergewürfelt.
1.) Seriennummer sollte so erzeugt werden, dass man nicht einfach durch Ausprobieren eine neue Seriennummer erstellen kann. Wenn man z.B. einen String mit Ziffern und Grossbuchstaben der Länge 10 verwendet ergibt das 36^10 verschiedene Möglichkeiten. Aus diesem riesigen Raum werden aber deutlich weniger Kombinationen verwendet, die mit einem best. Prüfalgorithmus als gültig erkannt werden. 2.) Fingerprint Merkmale des Rechners (BIOS-Daten, MAC-Adr der Netzwerkkarten, Serialno der Festplatten,...) werden erfasst, darüber eine Prüfsumme gbildet und abgespeichert. Stellt das Programm später eine Abweichung fest, hat sich der Rechner geändert. |
AW: Algorithmus für eine Serialnummer
Hallo,
Also ich würde es im ersten Moment vllt so machen: Nummerier die Zeichen die enthalten sein können von 1 bis n. Du teilst die SN in mehrere Blöcke auf und definierst die Soll-"Quersumme" jedes Blocks. Bei 2 Blöcken z.B. Block 1: Quersumme 14 Block 2: Quersumme 10 wenn jeder Block aus 4 Zeichen besteht dann nimmst du dir 4 Zeichen aus deinem nummerierten Zeichensatz und stellst sicher dass die Quersumme = der Soll-Quersumme für diesen Block ist. In meinem Beispiel benutzen wir mal die Zeichen 0-9 (Nummeriert von 1 bis 10). Block 1: 5203 (6+3+1+4 = 14) Block 2: 1041 (2+1+5+2 = 10) Seriennummer: 5203-1041 Du kannst natürlich noch einige mehr generieren. Umso höher die Soll-Quersummen bzw. die Anzahl der Zeichen pro Block und dem Zeichensatz, desto mehr Möglichkeiten gibt es. |
AW: Algorithmus für eine Serialnummer
Liste der Anhänge anzeigen (Anzahl: 1)
Ich möchte hier mal eine von mir verwendete Methode der Key-Erzeugung vorstellen.
Vielleicht ist sie ja für den hier genannten Zweck verwendbar. Die angehängte zip-Datei enthält auch den gesamten Quellcode, eine readme.txt und Testanwendungen. |
AW: Algorithmus für eine Serialnummer
Nehme den Namen
Füge Zufallsbuchstaben hinzu, bis die Länge 20 Zeichen beträgt Verschlüssele das Ganze mit DES Codiere es mit Base64 Fertig. Du kannst dafür das DEC nehmen. Sofern nicht ein großer Teil der Nutzer Cracker sind brauchst du die Methoden auch nicht verschleiern oder so. |
AW: Algorithmus für eine Serialnummer
Ok, vielen Dank an alle, es was sehr informativ, habe sehr viele Ideen und Anregungen. Und auch wenn ich mich jetzt, da die Zeit drängte, für eine einfache Serial aus Zufallszahlen, der Quersumme inc. Modulo Prüfsumme entschied, werde ich die nächste Version es etwas aufwändiger gestalten. Nur jetzt war die Zeit knapp. Und auch schönen Dank an Progman für das Beispiel, sehr informativ.
|
AW: Algorithmus für eine Serialnummer
Zitat:
Du könntest das ja mal aufräumen - nicht zur Strafe, nur zur Übung :wink: |
AW: Algorithmus für eine Serialnummer
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz