Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Algorithmus für eine Serialnummer (https://www.delphipraxis.net/170132-algorithmus-fuer-eine-serialnummer.html)

Furtbichler 3. Sep 2012 07:24

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;

Uwe Raabe 3. Sep 2012 09:06

AW: Algorithmus für eine Serialnummer
 
Zitat:

Zitat von Furtbichler (Beitrag 1181134)
Das Problem mit den Namen wäre z.B. "Hans Meyer", den es doch öfter gibt und dann identische Serials erzeugt.

Sehr richtig! Eine Liste mit Seriennummer und Name/Ort ist auch nicht schwer zu pflegen. Eine simple Adressverwaltung mit integriertem Seriennummerngenerator und eine Liste sortiert nach Seriennummer sollte ausreichen.

Alternativ kannst du ja auch nach der Steuer-ID fragen, wenn alle deine Kunden aus Deutschland kommen.

EWeiss 3. Sep 2012 09:21

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

sx2008 3. Sep 2012 09:33

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.

Neutral General 3. Sep 2012 10:37

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.

Progman 3. Sep 2012 14:35

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.

WM_CLOSE 3. Sep 2012 15:16

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.

Popov 3. Sep 2012 15:57

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.

shmia 3. Sep 2012 16:48

AW: Algorithmus für eine Serialnummer
 
Zitat:

Zitat von Progman (Beitrag 1181252)
Vielleicht ist sie ja für den hier genannten Zweck verwendbar.

Wenn nicht so viele globalen Variablen rumfliegen würden.
Du könntest das ja mal aufräumen - nicht zur Strafe, nur zur Übung :wink:

Klaus01 3. Sep 2012 17:03

AW: Algorithmus für eine Serialnummer
 
Hallo,

in diesem Post hat corpsman seine TSerial Komponente vorgestellt.

Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:11 Uhr.
Seite 2 von 3     12 3      

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