Heim >Backend-Entwicklung >PHP-Tutorial >Vier Möglichkeiten, Strings mit zufälligen Wörtern in PHP zu generieren

Vier Möglichkeiten, Strings mit zufälligen Wörtern in PHP zu generieren

零到壹度
零到壹度Original
2018-04-11 17:57:322109Durchsuche

Der Inhalt dieses Artikels besteht darin, Ihnen vier Methoden zum Generieren von Zeichenfolgen mit zufälligen Wörtern in PHP vorzustellen. Es hat einen gewissen Referenzwert.

Im Folgenden sind vier grundlegende Methoden zum Generieren von Zufallszeichenfolgen aufgeführt:

Methode 1:

1 , generieren 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 mit 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 Der Bereich kann nach Bedarf angepasst werden. Beispielsweise entsprechen 97–122 Bits den englischen Buchstaben a–z Wird verwendet, 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. Geben Sie eine Zeichenfolge $chars vor, einschließlich a – z, A – Z, 0 – 9 und einigen Sonderzeichen.

2. Wählen Sie zufällig ein Zeichen aus der $chars-Zeichenfolge aus.

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 .= $str{mt_rand(0,strlen($chars) - 1)};    
          //生成php随机数
            $password .= $chars[ mt_rand(0, strlen($chars) - 1) ];             }             return $password;            }


Methode 3:


1. Legen Sie ein Zeichenarray $chars vor, 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. Nehmen 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 =array_rand ($chars, $length); 
            $password = ”; 
           for($i = 0; $i < $length; $i++) 
          { 
             // 将 $length 个数组元素连接成字符串 
              $password .= $chars[$keys[$i]]; 
          } 
            return $password; 
         }

Methode 4:

Grundidee MD5-Verschlüsselung und Generierung einer 32-Bit-Zeichenfolge
mt_rand generiert eine Zufallszahl innerhalb eines angegebenen Bereichs
Zeit kann einen Zeitstempel erhalten
🎜>


Ergänzung
 $rand = md5(time() . mt_rand(0,1000));
: Fügen Sie eine geschweifte Klammer hinzu { } nach der PHP-Variablen und füllen Sie diese mit einer Zahl, die sich auf das Zeichen der entsprechenden Seriennummer der PHP-Variablen bezieht.

Zum Beispiel: $str = 'hello';

echo $str{0} // Die Ausgabe ist h

echo $str{1} ; / / Die Ausgabe ist e Wenn Sie überprüfen möchten, ob eine bestimmte Zeichenfolge die angegebene Länge erfüllt, können Sie die Verwendung von geschweiften Klammern plus isset in Betracht ziehen, um die strlen-Funktion zu ersetzen Wenn Sie eine Funktion verwenden, ist die Verwendung von isset effizienter als die Verwendung von strlen.
Um beispielsweise zu bestimmen, ob die Länge einer Zeichenfolge kleiner als 5 ist:
if ( !isset ( $str{5} ) ) ist besser als if ( strlen ( $str ) < 5 ).
                                                                 

Das obige ist der detaillierte Inhalt vonVier Möglichkeiten, Strings mit zufälligen Wörtern 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