Heim  >  Artikel  >  Backend-Entwicklung  >  Drei Möglichkeiten, zufällige Zeichenfolgen in PHP zu generieren

Drei Möglichkeiten, zufällige Zeichenfolgen in PHP zu generieren

墨辰丷
墨辰丷Original
2018-06-07 11:17:359534Durchsuche

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!@#$%^&*()-_ []{}<>~`+=,.;:/?|&#39;; 
$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&#39;, ‘b&#39;, ‘c&#39;, ‘d&#39;, ‘e&#39;, ‘f&#39;, ‘g&#39;, ‘h&#39;, 
‘i&#39;, ‘j&#39;, ‘k&#39;, ‘l&#39;,&#39;m&#39;, ‘n&#39;, ‘o&#39;, ‘p&#39;, ‘q&#39;, ‘r&#39;, &#39;s&#39;, 
‘t&#39;, ‘u&#39;, ‘v&#39;, ‘w&#39;, ‘x&#39;, ‘y&#39;,&#39;z&#39;, ‘A&#39;, ‘B&#39;, ‘C&#39;, ‘D&#39;, 
‘E&#39;, ‘F&#39;, ‘G&#39;, ‘H&#39;, ‘I&#39;, ‘J&#39;, ‘K&#39;, ‘L&#39;,&#39;M&#39;, ‘N&#39;, ‘O&#39;, 
‘P&#39;, ‘Q&#39;, ‘R&#39;, ‘S&#39;, ‘T&#39;, ‘U&#39;, ‘V&#39;, ‘W&#39;, ‘X&#39;, ‘Y&#39;,&#39;Z&#39;, 
‘0′, ‘1′, ‘2′, ‘3′, ‘4′, ‘5′, ‘6′, ‘7′, ‘8′, ‘9′, ‘!&#39;, 
‘@&#39;,&#39;#&#39;, ‘$&#39;, ‘%&#39;, ‘^&#39;, ‘&&#39;, ‘*&#39;, ‘(‘, ‘)&#39;, ‘-&#39;, ‘_&#39;, 
‘[&#39;, &#39;]‘, ‘{‘, ‘}&#39;, ‘<&#39;, ‘>&#39;, ‘~&#39;, ‘`&#39;, ‘+&#39;, ‘=&#39;, ‘,&#39;, 
‘.&#39;, ‘;&#39;, ‘:&#39;, ‘/&#39;, ‘?&#39;, ‘|&#39;); 
 
// 在 $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

Kostenlose Nachrichtenbenachrichtigungsfunktion mit PHP Wie schreibe ich die Schnittstelle in Telegram?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn