:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte
Unternehmen im
Anbieterverzeichnis von SELFPHP
:: SELFPHP Forum ::
Fragen rund um die Themen PHP? In über
120.000 Beiträgen finden Sie sicher die passende
Antwort!
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
:: Qozido ::
Die Bilderverwaltung mit Logbuch für
Taucher und Schnorchler.
|
|
Sicheres Passwort erzeugen |
Beispielaufgabe
Es soll ein zufällig generiertes Passwort erzeugt werden.
Beschreibung
Der folgende Code Snippet erzeugt ein Passwort mit einer variablen Länge. Zusätzlich stehen folgende Parameter zur Verfügung:
+ Angabe der Passwortlänge ($passwordlength)
+ Menge der einzubindenden Sonderzeichen ($numNonAlpha)
+ Menge der einzubindenden Zahlen ($numNumberChars)
+ Nutzung von Großbuchstaben ($useCapitalLetter)
Die Funktion erzeugt aus den Parametern ein zufälliges Passwort mit der festgelegten Menge an Zeichen ($passwordlength) und den einzubindenden Sonderzeichen und Zahlen.
<?PHP
function generatePassword ( $passwordlength = 8,
$numNonAlpha = 0,
$numNumberChars = 0,
$useCapitalLetter = false ) {
$numberChars = '123456789';
$specialChars = '!$%&=?*-:;.,+~@_';
$secureChars = 'abcdefghjkmnpqrstuvwxyz';
$stack = '';
// Stack für Password-Erzeugung füllen
$stack = $secureChars;
if ( $useCapitalLetter == true )
$stack .= strtoupper ( $secureChars );
$count = $passwordlength - $numNonAlpha - $numNumberChars;
$temp = str_shuffle ( $stack );
$stack = substr ( $temp , 0 , $count );
if ( $numNonAlpha > 0 ) {
$temp = str_shuffle ( $specialChars );
$stack .= substr ( $temp , 0 , $numNonAlpha );
}
if ( $numNumberChars > 0 ) {
$temp = str_shuffle ( $numberChars );
$stack .= substr ( $temp , 0 , $numNumberChars );
}
// Stack durchwürfeln
$stack = str_shuffle ( $stack );
// Rückgabe des erzeugten Passwort
return $stack;
}
$passwd = generatePassword ( 8, 2, 2, true );
echo $passwd . '<br>';
$passwd = generatePassword ( 8, 0, 0, true );
echo $passwd . '<br>';
$passwd = generatePassword ( 8 );
echo $passwd;
?>
|
Ausgabebeispiel: Browseransicht
9q$Bn+5P
XvmGcDRH
vtnehdzf |
|
|
|
|
|
|