Code-Generator
18.08.2009
10:02:58 Uhr9869 Aufrufe
9 Antworten
10:02:58 Uhr
9 Antworten
Hilfreich +1
Seriennummern, Model-Nummern, Codes, usw. hat schon jeder mal gesehen. Ich möchte mit einer kleinen Funktion veranschaulichen wie man so ein "Code" selbst generieren kann.
Folgende Funktion generiert ein Quadrupel bestehend aus Zahlen von 0-9 und Buchstaben von A-Z. Dabei ergeben sich dadurch insgesammt 1'336'336 (34^4) Möglichkeiten.
Ausgabe:
...
AA5E
DRTX
1646
2R0O
...
Diese Funktion generiert einfach vor sich hin ohne zu prüfen ob ein Quadrupel bereits existiert. Eine Möglichkeit wäre alle ergebnisse in eine Datenbank zu speichern und zu prüfen ob dieser Wert bereits existiert.
Viel spass damit! Und wenn sich ein Fehler eingeschlichen hat oder jemandem etwas unklar ist einfach melden.
Gruss
Ccamel
Ausgabe:
...
AA5E
DRTX
1646
2R0O
...
Diese Funktion generiert einfach vor sich hin ohne zu prüfen ob ein Quadrupel bereits existiert. Eine Möglichkeit wäre alle ergebnisse in eine Datenbank zu speichern und zu prüfen ob dieser Wert bereits existiert.
01.
<?php 02.
function generatorQuadrupel(){ 03.
$quadrupel = array(); //--- Define Array 04.
$anzahl = 4; //--- 4 Stellen (Quadrupel) 05.
for($x = 0; $x < $anzahl; $x++){ 06.
$i = mt_rand(0, 1); 07.
if($i < 1){ 08.
$single = chr(mt_rand(65, 90)); //--- Zufalls ASCII von A-Z 09.
}else{ 10.
$single = mt_rand(0, 9); //--- Zufallszahl von 0-9 11.
} 12.
$quadrupel[$x] = $single; //--- Das Array wird gefüllt 13.
} 14.
return implode("", $quadrupel); 15.
} 16.
?>Viel spass damit! Und wenn sich ein Fehler eingeschlichen hat oder jemandem etwas unklar ist einfach melden.
Gruss
Ccamel
ccamel schreibt am 24.08.2009 um 08:50:24 Uhr
Morgen,
LordXenaro liegt mit seiner Vermutung richtig. Dazu noch ein Link: http://www.asciitable.com/
Gruss
Ccamel
LordXenaro liegt mit seiner Vermutung richtig. Dazu noch ein Link: http://www.asciitable.com/
Gruss
Ccamel
StefanKittel schreibt am 09.10.2009 um 08:49:36 Uhr
Moin,
Zufallszahlen an einem Computer erzeugen geht ja eigentlich nicht. Es sind immer Pseudozufallszahlen.
Du gehst immer das Risko ein, dass Deine Routinen oder die des OS fehlerhaft sind und damit in einer endlosschleife hängen (weil schon vorhanden).
Besser wäre ein "System".
Z.B. sehen unsere Rechnungen so aus 200910090001. Also Datum rückwerts mit einem Zähler.
Letzten Wert auslesen, Datum überprüfen, Zähler erhöhen.
Zusätzlich kann man anhand der SN dann noch das Datum erkennen.
Stefan
Zufallszahlen an einem Computer erzeugen geht ja eigentlich nicht. Es sind immer Pseudozufallszahlen.
Du gehst immer das Risko ein, dass Deine Routinen oder die des OS fehlerhaft sind und damit in einer endlosschleife hängen (weil schon vorhanden).
Besser wäre ein "System".
Z.B. sehen unsere Rechnungen so aus 200910090001. Also Datum rückwerts mit einem Zähler.
Letzten Wert auslesen, Datum überprüfen, Zähler erhöhen.
Zusätzlich kann man anhand der SN dann noch das Datum erkennen.
Stefan
ccamel schreibt am 12.10.2009 um 10:18:40 Uhr
Salü
"In der Berechenbarkeitstheorie wird alles das als pseudozufällig bezeichnet, was durch den Betrachter nicht von wirklicher Zufälligkeit unterschieden werden kann." - Wikipedia
Hast Du das Script überhaupt mal getestet? Bei mir nie hängen geblieben wegen "weil schon vorhanden". Alles eine Sache der Handhabung.
Gruss
Ccamel
Zufallszahlen an einem Computer erzeugen geht ja eigentlich nicht. Es sind immer Pseudozufallszahlen.
"In der Berechenbarkeitstheorie wird alles das als pseudozufällig bezeichnet, was durch den Betrachter nicht von wirklicher Zufälligkeit unterschieden werden kann." - Wikipedia
Du gehst immer das Risko ein, dass Deine Routinen oder die des OS fehlerhaft sind und damit in einer endlosschleife hängen (weil schon vorhanden).
Hast Du das Script überhaupt mal getestet? Bei mir nie hängen geblieben wegen "weil schon vorhanden". Alles eine Sache der Handhabung.
Besser wäre ein "System"...
Du erzählst was von Rechnungen. Find ich super Dein System. Ich aber erzähl was von "Codes" wie man sie bei Captchas oder sonstwo findet. Gruss
Ccamel
SamTrex schreibt am 12.10.2009 um 21:26:21 Uhr
Hallo zusammen,
hier auch noch ein kleiner Code-Generator von mir...
Beinhaltet 0-9, a-z, A-Z und einen ganzen Satz an Sonderzeichen!
Die Länge ist begrenzt auf 1024 Zeichen. Damit kommt man in der Regel aus ;)
VBS-Code:
Ideal für WLAN-Schlüssel und gute Account PW's: ao|44$:rx+^4]xQu||OokyVvx^A(-1bW94TIhhz9A!L;{J]T{9{PZ"ndfPywgsq9
Viel Spaß damit!
Gruß Sam
hier auch noch ein kleiner Code-Generator von mir...
Beinhaltet 0-9, a-z, A-Z und einen ganzen Satz an Sonderzeichen!
Die Länge ist begrenzt auf 1024 Zeichen. Damit kommt man in der Regel aus ;)
VBS-Code:
01.
Option Explicit 02.
03.
'Deklaration der Variablen 04.
Dim index 'Zähler für die FOR-NEXT-Schleife 05.
Dim index1 'Abfrage ob DO-Schleife wiederholt werden soll 06.
Dim index2 'Erstelltes Zufallszeichen 07.
Dim index3 : index3 = "" 'Länge des Keys 08.
dim index4 : index4 = 1024 'Maximale Länge des Keys 09.
Dim min : min = 33 'Minimalindex für ASCII-Zeichen 10.
Dim max : max = 126 'Maximalindex für ASCII-Zeichen 11.
Dim key 'Key 12.
13.
'Deklaration der Objekte 14.
Dim objSHELL : SET objSHELL = createobject("wscript.shell") 15.
16.
'Zufallswert für Start ermitteln 17.
Randomize 18.
19.
'Key erstellen 20.
Do 21.
index3 = InputBox("Bitte geben Sie die Länge des gewünschten Keys an...", "KeyGen") 22.
If index3 = Empty then WScript.Quit 23.
If IsNumeric(index3) Then 24.
if cint(index3) > index4 then 25.
msgbox "Die gewünschte Länge des Keys ist zu groß!" & vbcr & "Es werden maximal " & index4 & " Zeichen unterstützt.",vbokonly+vbexclamation,"KeyGen" 26.
index1 = vbNo 27.
else 28.
Do 29.
key = "" 30.
For index = 1 To index3 31.
index2 = Int((max - min + 1) * Rnd + min) 32.
key = key & Chr(index2) 33.
Next 34.
index1 = objSHELL.popup("Ihr generierter Schlüssel mit einer Länge von " & index3 & " Zeichen:" & vbCr & vbCr & key & vbCr & vbCr & "Zufrieden?",,"KeyGen",vbyesno + vbexclamation) 35.
Loop While index1 = vbNo 36.
end if 37.
else 38.
MsgBox "Sie haben keine Zahl eingegeben!", vbCritical, "KeyGen" 39.
index1 = vbNo 40.
End If 41.
Loop While index1 = vbNo 42.
43.
'Key in Inputbox ausgeben (damit er kopiert werden kann!) 44.
InputBox "Zum kopieren einfach 'Strg+C' oder 'rechtsklick - Kopieren' wählen","KeyGen",keyIdeal für WLAN-Schlüssel und gute Account PW's: ao|44$:rx+^4]xQu||OokyVvx^A(-1bW94TIhhz9A!L;{J]T{9{PZ"ndfPywgsq9
Viel Spaß damit!
Gruß Sam

















81825schreibt am 24.08.2009 um 08:59:22 Uhr