Die Verwendung von PHP zur Entwicklung von Anwendungen, insbesondere von Website-Programmen, erfordert häufig die Generierung zufälliger Passwörter. Beispielsweise wird für die Benutzerregistrierung ein zufälliges Passwort generiert, und auch für das Zurücksetzen des Benutzers ist ein zufälliges Passwort erforderlich Passwort. Ein Zufallskennwort ist eine Zeichenfolge fester Länge. Hier habe ich mehrere Methoden zum Generieren zufälliger Zeichenfolgen als Referenz zusammengestellt.
Generieren Sie eine zufällige Ganzzahl von 33 – 126, z. B. 35,
konvertieren Sie 35 in die entsprechende Zahl ASCII-Codezeichen, z. B. 35 entsprechend #
Wiederholen Sie die obigen Schritte 1 und 2 n-mal, um eine Verbindung zu einem n-stelligen Passwort herzustellen
Anweisungen:
Dieser Algorithmus verwendet hauptsächlich zwei Funktionen, um zufällige Ganzzahlen zu generieren, wobei mt_rand ( int $min , int $max )
der Bereich von ASCII-Codes ist Bei Bedarf angepasst, z. B. ASCII-Codes. Das Bit $min – $max
in der Tabelle entspricht 97 —— 122
und a – z
entspricht dem englischen Buchstaben 65 —— 90
. Weitere Informationen finden Sie in der ASCII-Codetabelle. A —— Z
<?phpfunction create_password($pw_length = 8) { $randpwd = ''; for ($i = 0; $i < $pw_length; $i++) { $randpwd .= chr(mt_rand(33, 126)); } return $randpwd; }// 调用该函数,传递长度参数$pw_length = 6echo create_password(6);
, einschließlich $chars
und einiger Sonderzeichen a – z,A – Z,0 – 9,
-Zeichenfolge $chars
<?php function generate_password( $length = 8 ) { // 密码字符集,可任意添加你需要的字符 $chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()-_[]{}<>~`+=,.;:/?|'; $password = ''; for ( $i = 0; $i < $length; $i++ ) { // 这里提供两种字符获取方式 // 第一种是使用 substr 截取$chars中的任意一位字符; // 第二种是取字符数组 $chars 的任意元素 // $password .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); $password .= $chars[ mt_rand(0, strlen($chars) - 1) ]; } return $password; } echo generate_password(6);
, einschließlich $chars
und einiger Sonderzeichen a – z,A – Z,0 – 9
für eine zufällige Auswahl array_rand()
Elemente $chars
$length
und die Zeichen, die Zeichen verbinden, aus dem Array $keys
Zeichenfolge herausnehmen. Der Nachteil dieser Methode besteht darin, dass dieselben Zeichen nicht wiederholt abgerufen werden. $chars
<?phpfunction make_password( $length = 8 ) { // 密码字符集,可任意添加你需要的字符 $chars = array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l','m', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y','z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L','M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y','Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '!', '@','#', '$', '%', '^', '&', '*', '(', ')', '-', '_', '[', ']', '{', '}', '<', '>', '~', '`', '+', '=', ',', '.', ';', ':', '/', '?', '|'); // 在 $chars 中随机取 $length 个数组元素键名 $keys = array_rand($chars, $length); $password = ''; for($i = 0; $i < $length; $i++) { // 将 $length 个数组元素连接成字符串 $password .= $chars[$keys[$i]]; } return $password; }echo make_password(6);
<?phpfunction get_password( $length = 8 ) { $str = substr(md5(time()), 0, $length); return $str; }echo get_password(6);
<?phpfunction random_pass( $length = 8 ){ $password = ''; $chars = 'abcdefghijkmnpqrstuvwxyz23456789ABCDEFGHIJKMNPQRSTUVWXYZ'; //去掉1跟字母l防混淆 if ($length > strlen($chars)) {//位数过长重复字符串一定次数 $chars = str_repeat($chars, ceil($length / strlen($chars))); } $chars = str_shuffle($chars); $password = substr($chars, 0, $length); return $password; }echo random_pass(6);
Das obige ist der detaillierte Inhalt vonEine kurze Einführung, wie PHP zufällige Passwörter generiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!