Einfacher Password generator
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angegebenen ziffern
array
aufruf
automatische antwort
bonus
break
double
folgende stelle
folgende zeile
frage
funktion
genaues ergebnis
minimale anzahl
rand
rest
schleife
special
switch
zeichen
zufall
-
Funktion um ein Password zu erstellen eines zufallespassworts mit l?ngenangabe und cryptangabe
Hier eine kleine function die ich gefunden habe und etwas ge?ndert.
Hier erst der komplette Code
function mkpassword($chars, $crypt) {
if (!isset($chars)) {
$chars = 8;
}
$loops = $chars / 4;
$conso=array("b","c","d","f","g","h","j","k","l","m","n","p","r","s","t","v","w","x","y","z");
$vocal=array("a","e","i","o","u");
$numerics=array(1, 2, 3, 4, 5, 6, 7, 8, 9, 0);
$specials=array("_", "-");
$password="";
srand ((double)microtime()*1000000);
for($f=1; $f<=$loops; $f++)
{
$password.=$conso[rand(0,15)];
$password.=$vocal[rand(0,4)];
$password.=$specials[rand(0,1)];
$password.=$numerics[rand(0,9)];
}
$password = substr($password, 0, $chars);
switch($crypt) {
case "md5": return md5($password); break;
default: return $password; break;
}
}
Aufrufbar ist diese Funktion mit
mkpassword(12, '');
O.g. Aufruf gibt dann ein Password mit 12 Zeichen ohne Verschl?sselung aus.
Die minimale anzahl der Zeichen ist 4.
man kann diverse Verschl?sselungen hinzuf?gen wenn mal folgende stelle ver?ndert:
switch($crypt) {
case "md5": return md5($password); break;
default: return $password; break;
}
will man nun die crypt() funktion benutzen f?gt man zwischen "case md5" und default folgendes ein:
case "crypt": return crypt($password); break;
wenn man nun die Funktion it
mkpassword(12, 'crypt');
gibt es ein 12 Stelliges verschl?sseltes Password zur?ck. "crypt" l?sst sich auch durch md5 ersetzen, dann gibt es einen md5-hash zur?ck.
------Zur Codeerkl?rung------
for($f=1; $f<=$loops; $f++)
eine einfache for-schleife, sie l?uft so lange bis $f kleiner oder genausogro? ist wie $loops
$password.=$conso[rand(0,15)];
$password.=$vocal[rand(0,4)];
$password.=$specials[rand(0,1)];
$password.=$numerics[rand(0,9)];
In der for-schleife werden die verschiedenen Arrays an Zeichen zusammengesetzt nach zufall, dadurch das rand(x,x)
rand() gibt eine zufallszahl zwischen den angegebenen ziffern aus.
rand(0,1) gibt also mal 0 oder mal 1 aus.
Weitere Fragen k?nnen dann gern per Kommentar gestellt werde.
Nachtrag:
Folgende Zeile habe ich oben noch hinzugef?gt, um ein genaues Ergebnis an Chars zu erziehlen
$password = substr($password, 0, $chars);
substr cuttet einen string, in diesen Fall von 0 (Anfang) bis einschlie?lich $chars.
Erkl?rung von php.net:
$rest = substr("abcdef", 1); // gibt "bcdef" zur?ck
$rest = substr("abcdef", 1, 3); // gibt "bcd" zur?ck
$rest = substr("abcdef", 0, 4); // gibt "abcd" zur?ck
$rest = substr("abcdef", 0, 8); // gibt "abcdef" zur?ck
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Dieses Thema wurde mit folgender Begr?ndung von kenny197902 geschlossen:
Hier gibts eigentlich auch keinen Diskussionsgrund. Ich w?rde mal deine Tutorials unter Tutorials ver?ffentlichen, da winkt mehr Bonus als hier im Thread!
(Dies ist eine automatische Antwort durch das System). -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage