Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Wie generiere ich automatisch Serien-Nummern ?

Frage Internet

Mitglied: dark3zz

dark3zz (Level 1) - Jetzt verbinden

04.08.2010 um 09:11 Uhr, 3711 Aufrufe, 13 Kommentare

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
Mitglied: H41mSh1C0R
04.08.2010 um 09:56 Uhr
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
Bitte warten ..
Mitglied: 60730
04.08.2010 um 10:28 Uhr
Moin,

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.

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ß
Bitte warten ..
Mitglied: maretz
04.08.2010 um 10:50 Uhr
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...
Bitte warten ..
Mitglied: ITwissen
04.08.2010 um 12:57 Uhr
In Perl:

01.
for ($i=1;$i<1000;$i++) { 
02.
     $sn=sprintf("%010d",$i); 
03.
     printf("%s-%s-%s\n",substr($sn,0,4), substr($sn,4,4), substr($sn,8,2)); 
04.
}
Bitte warten ..
Mitglied: dark3zz
04.08.2010 um 14:47 Uhr
..
Bitte warten ..
Mitglied: dark3zz
04.08.2010 um 15:04 Uhr
Hoied

Ja das sind alles tolle Lösungen, danke. Aber wie generiere ich eben diese 1'000 ? Mit was


ITWissen: Das könnte ich ja unter php ausführen oder ?
Bitte warten ..
Mitglied: ITwissen
04.08.2010 um 15:12 Uhr
Ja, aber vielleicht zur übersichtlichkeit noch ein "<br>" rein.

01.
<? 
02.
for ($i=1;$i<1000;$i++) { 
03.
     $sn=sprintf("%010d",$i); 
04.
     printf("%s-%s-%s<br>\n",substr($sn,0,4), substr($sn,4,4), substr($sn,8,2)); 
05.
06.
?>
Bitte warten ..
Mitglied: dark3zz
04.08.2010 um 15:27 Uhr
Hoi ITWissen

das klappt, aber der script zählt nur immer +1 und gibt wieder aus

also da wären Buchstaben gemischt besser. und keine 000-000-01 etc..... auf die schnelle weiss ich nun nicht wie dein php script anzupassen

ps: die serinenummern bestehen nur aus buchstaben
Bitte warten ..
Mitglied: dark3zz
04.08.2010 um 15:29 Uhr
Zitat von 60730:


Die Frage ist also, willst du zufällige oder eine Reihe von Zahlen?

Gruß


zufällige buchstaben

OERD-DGGB-DW z.b.
Bitte warten ..
Mitglied: ITwissen
04.08.2010 um 15:37 Uhr
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
Bitte warten ..
Mitglied: dark3zz
04.08.2010 um 15:44 Uhr
ne eazy.. hab keine zeit sauer zu sein... zahlen/buchstaben habe ich übersehen, bin ja keine maschine.

danke fuer den vorschlag. werde mich aber mit deiner lösung weiter beschäftigen....

vielleicht gibts ja noch lösungsvorschläge mit VisualBasic (Access z.b.) oder ganz einfach Excel. Vielleicht sollte ich mal noch im Excel Bereich was posten.
Bitte warten ..
Mitglied: maretz
04.08.2010 um 15:48 Uhr
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[0]="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...
Bitte warten ..
Mitglied: ITwissen
05.08.2010 um 07:57 Uhr
Weil es wirklich einfach ist, hier mit Buchstaben:

01.
<? 
02.
for ($i=1;$i<1000;$i++) { 
03.
     $sn=strtr(sprintf("%010d",$i),'0123456789','ABCDEFGHIJ'); 
04.
     printf("%s-%s-%s<br>\n",substr($sn,0,4), substr($sn,4,4), substr($sn,8,2));  
05.
06.
?>
Hinweis: mit Zufallszahlen, muss man noch checken, ob eine Zeichenfolge zweimal vorkommt.
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Microsoft Office
gelöst Registerkarte in Excel automatisch färben (14)

Frage von ralfkausk zum Thema Microsoft Office ...

Windows Server
Jnlp Endungen mit Java automatisch verknüpfen über GPO (10)

Frage von staybb zum Thema Windows Server ...

Microsoft Office
Serien Mail Problem Office 2013

Frage von hagerino zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (27)

Frage von patz223 zum Thema Windows Userverwaltung ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (20)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...