Code-Generator
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
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.
<?php
function generatorQuadrupel(){
$quadrupel = array(); //--- Define Array
$anzahl = 4; //--- 4 Stellen (Quadrupel)
for($x = 0; $x < $anzahl; $x++){
$i = mt_rand(0, 1);
if($i < 1){
$single = chr(mt_rand(65, 90)); //--- Zufalls ASCII von A-Z
}else{
$single = mt_rand(0, 9); //--- Zufallszahl von 0-9
}
$quadrupel[$x] = $single; //--- Das Array wird gefüllt
}
return implode("", $quadrupel);
}
?>
Viel spass damit! Und wenn sich ein Fehler eingeschlichen hat oder jemandem etwas unklar ist einfach melden.
Gruss
Ccamel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 122945
Url: https://administrator.de/contentid/122945
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
9 Kommentare
Neuester Kommentar
Im Bereich von 0 - 31 liegen die nicht druckbaren Steuerzeichen. Ob das wirklich sinnvoll ist .....
Abgesehen davon: Die paar Codezeilen als Anleitung anstatt als Tipp zu veröffentlichen, ist schon dreist.
Abgesehen davon: Die paar Codezeilen als Anleitung anstatt als Tipp zu veröffentlichen, ist schon dreist.
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
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:
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:
Option Explicit
'Deklaration der Variablen
Dim index 'Zähler für die FOR-NEXT-Schleife
Dim index1 'Abfrage ob DO-Schleife wiederholt werden soll
Dim index2 'Erstelltes Zufallszeichen
Dim index3 : index3 = "" 'Länge des Keys
dim index4 : index4 = 1024 'Maximale Länge des Keys
Dim min : min = 33 'Minimalindex für ASCII-Zeichen
Dim max : max = 126 'Maximalindex für ASCII-Zeichen
Dim key 'Key
'Deklaration der Objekte
Dim objSHELL : SET objSHELL = createobject("wscript.shell")
'Zufallswert für Start ermitteln
Randomize
'Key erstellen
Do
index3 = InputBox("Bitte geben Sie die Länge des gewünschten Keys an...", "KeyGen")
If index3 = Empty then WScript.Quit
If IsNumeric(index3) Then
if cint(index3) > index4 then
msgbox "Die gewünschte Länge des Keys ist zu groß!" & vbcr & "Es werden maximal " & index4 & " Zeichen unterstützt.",vbokonly+vbexclamation,"KeyGen"
index1 = vbNo
else
Do
key = ""
For index = 1 To index3
index2 = Int((max - min + 1) * Rnd + min)
key = key & Chr(index2)
Next
index1 = objSHELL.popup("Ihr generierter Schlüssel mit einer Länge von " & index3 & " Zeichen:" & vbCr & vbCr & key & vbCr & vbCr & "Zufrieden?",,"KeyGen",vbyesno + vbexclamation)
Loop While index1 = vbNo
end if
else
MsgBox "Sie haben keine Zahl eingegeben!", vbCritical, "KeyGen"
index1 = vbNo
End If
Loop While index1 = vbNo
'Key in Inputbox ausgeben (damit er kopiert werden kann!)
InputBox "Zum kopieren einfach 'Strg+C' oder 'rechtsklick - Kopieren' wählen","KeyGen",key
Gruß Sam