In diesem Artikel werden hauptsächlich drei Methoden zum Generieren von Zufallszeichenfolgen in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.
Methode 1
1. Erzeugen Sie eine zufällige Ganzzahl zwischen 33 und 126, z. B. 35.
2. Konvertieren Sie 35 in das entsprechende ASCII-Codezeichen, z. B. 35 entsprechend #.
3. Wiederholen Sie die obigen Schritte 1 und 2 n-mal, um eine Verbindung zu einem n-stelligen Passwort herzustellen.
Dieser Algorithmus verwendet hauptsächlich zwei Funktionen. Die Funktion mt_rand (int $min, int $max) wird zum Generieren zufälliger Ganzzahlen verwendet, wobei $min – $max der Bereich der ASCII-Codes ist, hier ist er 33-. 126, Der Bereich kann nach Bedarf angepasst werden. 97-122 Bits in der ASCII-Codetabelle entsprechen den englischen Buchstaben a-z. Weitere Informationen finden Sie in der ASCII-Codetabelle um die entsprechende Ganzzahl $ascii in das entsprechende Zeichen umzuwandeln.
function create_password($pw_length = { $randpwd = ”; for ($i = 0; $i < $pw_length; $i++) { $randpwd .= chr(mt_rand(33, 126)); } return $randpwd; } // 调用该函数,传递长度参数$pw_length = 6 echo create_password(6);
Methode 2
1. Legen Sie eine Zeichenfolge $chars fest, einschließlich a – z, A – Z, 0 – 9 und einigen Sonderzeichen.
2. Wählen Sie ein zufälliges Zeichen aus der $chars-Zeichenfolge.
3. Wiederholen Sie den zweiten Schritt n-mal, um ein Passwort der Länge n zu erhalten.
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; }
Methode 3
1. Legen Sie ein Zeichenarray $chars fest, einschließlich a – z, A – Z, 0 – 9 und einigen Sonderzeichen.
2. Wählen Sie zufällig $length-Elemente aus dem Array $chars bis array_rand() aus.
3. Entnehmen Sie entsprechend dem erhaltenen Schlüsselnamen-Array $keys die Zeichen aus dem Array $chars und verketten Sie die Zeichenfolge. Der Nachteil dieser Methode besteht darin, dass dieselben Zeichen nicht wiederholt abgerufen werden.
function 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 = ($chars, $length); $password = ”; for($i = 0; $i < $length; $i++) { // 将 $length 个数组元素连接成字符串 $password .= $chars[$keys[$i]]; } return $password; }
Vergleich der Zeiteffizienz
Wir verwenden den folgenden PHP-Code, um die Laufzeit der oben genannten 3 zufälligen Passwortgenerierungsfunktionen zu berechnen und ein zu generieren Geben Sie ein 6-stelliges Passwort ein und führen Sie dann einen einfachen Vergleich ihrer Zeiteffizienz durch. Das Endergebnis ist:
Methode eins: 9,8943710327148E-5 Sekunden
Methode zwei: 9,6797943115234E-5 Sekunden
Methode drei: 0,00017499923706055 Sekunden Sie können die Methode sehen Die Ausführungszeit von Methode 1 und Methode 2 ist ähnlich, während die Laufzeit von Methode 3 etwas länger ist.
Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.
Verwandte Empfehlungen:
PHP zur Implementierung der Anmeldebestätigungscode-Funktion
PHP-Entwicklung WeChat-Rückerstattungsfall
Das obige ist der detaillierte Inhalt vonDrei Möglichkeiten, zufällige Zeichenfolgen in PHP zu generieren. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!