
88871
04.08.2010
Wie generiere ich automatisch Serien-Nummern ?
Ich muss CD-Keys herstellen. Wie löse ich das am besten/einfachsten
Ich muss CD Keys generieren. Das Format sieht so aus: 1234-1234-12
Hat jemand einen Tipp wie ich solche automatisch generieren kann ? Per Tool, Script, VB, PHP oder was auch immer ?
Ich brauche etwa 1'000 Stück, also von Hand ist da nichts ^^
Herzlichen Dank
Ich muss CD Keys generieren. Das Format sieht so aus: 1234-1234-12
Hat jemand einen Tipp wie ich solche automatisch generieren kann ? Per Tool, Script, VB, PHP oder was auch immer ?
Ich brauche etwa 1'000 Stück, also von Hand ist da nichts ^^
Herzlichen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 148278
Url: https://administrator.de/forum/wie-generiere-ich-automatisch-serien-nummern-148278.html
Ausgedruckt am: 04.04.2025 um 18:04 Uhr
13 Kommentare
Neuester Kommentar
Also beim basteln eines algos für einen keygen ist deiner Phantasie eigentlich keine Grenzen gesetzt.
Um wenig Arbeit zu machen, wenn die Anzahl der Keys überschaubar ist, schreib in deinem Format einfach per Zufall 1000 Keys in eine Datei und prüfe danach automatisch ob es den Key schon gibt, wenn ja Doppelten Key rausschmeissen und einen neuen dazu und erneut prüfen.
Bei 1000 Stück betrachte ich das noch als überschaubar, sollten es später viel mehr werden, müsste man schon einen algo mit ner logik nehmen, denn wenn man wegen einem Key 1.000.000 Keys abklappern muss ist das schon sehr ineffizient.
Daher ist die Random Variante die schnellste und einfachste für deinen Anwendungsfall und nicht gleich für den findigen Kunden durchschaubar als einfach nur hochzählen. xD
Um wenig Arbeit zu machen, wenn die Anzahl der Keys überschaubar ist, schreib in deinem Format einfach per Zufall 1000 Keys in eine Datei und prüfe danach automatisch ob es den Key schon gibt, wenn ja Doppelten Key rausschmeissen und einen neuen dazu und erneut prüfen.
Bei 1000 Stück betrachte ich das noch als überschaubar, sollten es später viel mehr werden, müsste man schon einen algo mit ner logik nehmen, denn wenn man wegen einem Key 1.000.000 Keys abklappern muss ist das schon sehr ineffizient.
Daher ist die Random Variante die schnellste und einfachste für deinen Anwendungsfall und nicht gleich für den findigen Kunden durchschaubar als einfach nur hochzählen. xD

Moin,
nur zur Info:
Die Frage ist also, willst du zufällige oder eine Reihe von Zahlen?
Gruß
nur zur Info:
Eine "Serien" Nummer ist/sind Nummern & Buchstabenkombinationen
- anhand der man idealerweise u.a das Herstelldatum ermitteln kann und die sollten daher fortlaufend sein.
- anhand der man idealerweise u.a das Herstelldatum ermitteln kann und die sollten daher fortlaufend sein.
Ein CD Key ist idealerweise ein Key mit eingebauter Prüfziffer. (vgl. ISBN)
Die Frage ist also, willst du zufällige oder eine Reihe von Zahlen?
Gruß
Wie möchtest du die denn abprüfen? Soll das z.B. mittels Datenbank gehen (d.h. online-prüfung) oder soll das auch offline gehen (d.h. berechnung des Codes ist möglich)
Im ersten Fall ganz simpel. Schreibe dir 1000 Keys mittels Random-Funktion in eine DB -> fertig. Jetzt lässt du dir 1000 Zettel mit je einem Key ausdrucken -> schon hast du alles was du brauchst.
Der zweite Fall ist da etwas komplexer. Denn generell is es einfach - du suchst dir nen Code aus (z.B. Quersumme muss die Zahl 7 ergeben ;) ). Schon kannst du aus der Eingabe erkennen ob das ganze passt - allerdings kann man das natürlich schnell auch wieder rausfinden und braucht den Code von dir nicht mehr. Oder du machst das etwas komplexer (z.B. mittels Zahlen/Buchstaben) bei dem du das alles erst in ein Format wandelst und sagst das es dann in dem Format bestimmte Eigenschaften erfüllen muss. Da ist dann die Frage: Was glaubst du wieviel Aufwand in das Knacken gesteckt wird - und dann ergibt sich daraus wie aufwendig dieser Schutz sein soll...
Und in EINEM Punkt musst du dir auch ganz klar sein: Ein "CD-Key" ist immer recht unsicher wenn du den nicht in die jeweilige CD fest mit eincompilierst (und selbst dann ist es mit nem Debugger recht einfach! - aber damit können nicht soviele Leute umgehen...). Denn jeden Code den du auf nen Zettel schreibst kann ich auch einfach per Email versenden, in die üblichen Key-Listen der bekannten Seiten eintragen usw.. -> schon ist dein komplexer Algorithmus für'n Ar...
Im ersten Fall ganz simpel. Schreibe dir 1000 Keys mittels Random-Funktion in eine DB -> fertig. Jetzt lässt du dir 1000 Zettel mit je einem Key ausdrucken -> schon hast du alles was du brauchst.
Der zweite Fall ist da etwas komplexer. Denn generell is es einfach - du suchst dir nen Code aus (z.B. Quersumme muss die Zahl 7 ergeben ;) ). Schon kannst du aus der Eingabe erkennen ob das ganze passt - allerdings kann man das natürlich schnell auch wieder rausfinden und braucht den Code von dir nicht mehr. Oder du machst das etwas komplexer (z.B. mittels Zahlen/Buchstaben) bei dem du das alles erst in ein Format wandelst und sagst das es dann in dem Format bestimmte Eigenschaften erfüllen muss. Da ist dann die Frage: Was glaubst du wieviel Aufwand in das Knacken gesteckt wird - und dann ergibt sich daraus wie aufwendig dieser Schutz sein soll...
Und in EINEM Punkt musst du dir auch ganz klar sein: Ein "CD-Key" ist immer recht unsicher wenn du den nicht in die jeweilige CD fest mit eincompilierst (und selbst dann ist es mit nem Debugger recht einfach! - aber damit können nicht soviele Leute umgehen...). Denn jeden Code den du auf nen Zettel schreibst kann ich auch einfach per Email versenden, in die üblichen Key-Listen der bekannten Seiten eintragen usw.. -> schon ist dein komplexer Algorithmus für'n Ar...
Du musst dich jetzt schon mal entscheiden, was du willst. Plötzlich sind deine Seriennummer nur Buchstaben, oben steht "1234-5678-90". Aus Zahlen Buchstaben machen ist ja nicht so schierig.
Wenn du nicht mal diesen einfachen 4 Zeiler in PHP lesen kannst, ohne ihn gleich laufen zu lassen, solltest du dich dringend in der Materie fortbilden.
So macht das keinen Spass.
Ich nehme 100 Euro (Freundschaftspreis!) die Stunde, dann schreib ich dir das in PHP. Hier gibt es nur "Anregungen", maximal Codeschnippsel.
Sorry, dass ich das so deutlich sagen muss. Du darfst jetzt auch sauer auf mich sein
Wenn du nicht mal diesen einfachen 4 Zeiler in PHP lesen kannst, ohne ihn gleich laufen zu lassen, solltest du dich dringend in der Materie fortbilden.
So macht das keinen Spass.
Ich nehme 100 Euro (Freundschaftspreis!) die Stunde, dann schreib ich dir das in PHP. Hier gibt es nur "Anregungen", maximal Codeschnippsel.
Sorry, dass ich das so deutlich sagen muss. Du darfst jetzt auch sauer auf mich sein
und damit du mal nen Ansatz hast:
Alphabet hat 26 - 52 Buchstaben (je nachdem ob du ne Unterscheidung Klein-/Gross beachten willst). EINE (stumpfe) Methode wäre jetzt also nen Array mit 26-52 Elementen
$Wert="A";
$Wert[1]="B";
Jetzt noch nen Random der dir ganzzahlige Werte zwischen 0-25/51 rauswirft.... Und das ganze dann in ner Schleife mit 12 Durchläufen -> fertig ist dein Generator...
Den fertigen Code darfst du dir eben in 3 Minuten selber zusammenballern...
Alphabet hat 26 - 52 Buchstaben (je nachdem ob du ne Unterscheidung Klein-/Gross beachten willst). EINE (stumpfe) Methode wäre jetzt also nen Array mit 26-52 Elementen
$Wert="A";
$Wert[1]="B";
Jetzt noch nen Random der dir ganzzahlige Werte zwischen 0-25/51 rauswirft.... Und das ganze dann in ner Schleife mit 12 Durchläufen -> fertig ist dein Generator...
Den fertigen Code darfst du dir eben in 3 Minuten selber zusammenballern...
Weil es wirklich einfach ist, hier mit Buchstaben:
Hinweis: mit Zufallszahlen, muss man noch checken, ob eine Zeichenfolge zweimal vorkommt.
<?
for ($i=1;$i<1000;$i++) {
$sn=strtr(sprintf("%010d",$i),'0123456789','ABCDEFGHIJ');
printf("%s-%s-%s<br>\n",substr($sn,0,4), substr($sn,4,4), substr($sn,8,2));
}
?>
Hinweis: mit Zufallszahlen, muss man noch checken, ob eine Zeichenfolge zweimal vorkommt.