Zufällige Zeichenkette in PHP generieren

Muhammad Abubakar 30 Januar 2023
  1. Zufällige Zeichenkette in PHP generieren
  2. Zufällige Zeichenkette mit der Funktion uniqid() generieren
  3. Erzeugen einer zufälligen Zeichenkette mit der Funktion str_shuffle($string) in PHP
  4. Erzeugen von zufälligen hexadezimalen Zeichenketten in PHP
  5. Kryptografisch sichere Zufallszeichenketten in PHP generieren
Zufällige Zeichenkette in PHP generieren

In diesem Tutorial-Artikel werden wir diskutieren, wie die zufällige Zeichenkette in PHP generiert wird.

Zufällige Zeichenkette in PHP generieren

Wir werden die Zufallsgeneratorfunktion in PHP definieren:

<?php
function random_str_generator ($len_of_gen_str){
    $chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
    $var_size = strlen($chars);
    echo "Random string ="; 
    for( $x = 0; $x < $len_of_gen_str; $x++ ) {
        $random_str= $chars[ rand( 0, $var_size - 1 ) ];  
        echo $random_str;  
    }
echo "\n";
}
random_str_generator (8)
?>

Ausgabe:

Random string =ExmIixDb

Es ist nicht erforderlich, nur Alphabete in die deklarierte Variable aufzunehmen. Sie können auch Zahlen, Symbole usw. hinzufügen, alles, was Sie möchten, in Ihre zufällig generierte Zeichenkette.

In der vierten Zeile nehmen wir die Länge der deklarierten Variablen mit der Funktion strlen(). Es hilft rand( 0, $var_size - 1 ), einen Index aus dem angegebenen Bereich zu generieren und diesen Wert dann der neu erstellten Variablen hinzuzufügen, und die Schleife hilft dem rand( 0, $var_size - 1 ), eine bestimmte Länge der Zeichenkette zu generieren.

Zufällige Zeichenkette mit der Funktion uniqid() generieren

Dies ist eine weitere Möglichkeit zur Erzeugung von ZufallsZeichenketten mithilfe der integrierten Funktion uniqid(). Es generiert die 13 eindeutige eindeutige Kennung, die auf dem aktuellen Zeitstempel basiert. Hier ist die Lösung:

<?php 
$Random_str = uniqid();  
echo "Random String:", $Random_str, "\n";
?> 

Ausgabe:

Random String:606208975a59f

Die Funktion uniqid() akzeptiert auch Parameter, die die Eindeutigkeit von Zeichenketten oder Bezeichnern erhöhen können. Es gibt Ihnen mehr beschriebenen Wert. Hier sind einige seiner Lösungen:

<?php 
echo uniqid('user_');
?> 

Ausgabe:

user_60620a2b23235 

Erzeugen einer zufälligen Zeichenkette mit der Funktion str_shuffle($string) in PHP

str_shuffle($string) ist die eingebaute Funktion, die als Zufallsgeneratorfunktion funktioniert, wie wir oben gesehen haben, dass wir eine Schleife und die eingebaute Funktion rand() verwenden, um eine zufällige Zeichenkette zu generieren, aber es ist auch anders. Wir verwenden nur die integrierte Funktion zum Generieren einer eindeutigen Zeichenkette, die uns dabei helfen kann, ein eindeutiges Kennwort für Ihre anspruchsvolle Länge zu erstellen, indem Sie den Bereich auf (str_shuffle($string),0,x(any number)) setzen.

<?php
 $x = 0;
 $y = 10;
$Strings = '0123456789abcdefghijklmnopqrstuvwxyz';
echo "Gen_rand_str: ",substr(str_shuffle($Strings), $x, $y), "\n";

$a = 0;
$b = 20;
$Strings='0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
echo "Gen_My_Pass: ",'hello.'.substr(str_shuffle($Strings), $a, $b).'.World',"\n";
?>

Ausgabe:

Gen_rand_str: b38aenwpkh
Gen_My_Pass: hello.EUMm4TB26CltW8qYnApF.World

Es kann uns auch helfen, URLs, zufällige Dateinamen usw. zu generieren. Es ist sicherer als der oben genannte Generator und komplex in der Vorhersage.

Diese Methode ist präziser, hat jedoch einige Probleme, da sie nicht zweimal dieselben Zeichen in Ihrer ZufallsZeichenkette enthalten kann und die Zufallsausgabe lang ist, solange Sie die EingabeZeichenkette angeben.

Erzeugen von zufälligen hexadezimalen Zeichenketten in PHP

Die Funktionen md5($string, $raw_output) und sha1($string,$raw_output) helfen uns, zufällige hexadezimale Zeichenketten zu generieren. In diesen Funktionen verwenden wir time() als Eingabe, um eine Ausgabe zu erzielen. Wenn wir eine hexadezimale Zeichenkette mit 32 Zeichen möchten, verwenden wir md5() und für 40 Zeichen sha1(). Schließlich können wir mit der Funktion substr() auch eine zufällige Zeichenkette unserer angegebenen Länge extrahieren.

<?php
 
echo "Out1: ",substr(md5(time()), 0, 16),"\n";
 
echo "Out2: ",substr(sha1(time()), 0, 16),"\n";
 
echo "Out3: ",md5(time()),"\n";
 
echo "Out4: ",sha1(time()),"\n";
 
?>

Ausgabe:

Out1: fcc78a076a5b743d
Out2: ae03e817c0dc6048
Out3: fcc78a076a5b743d8916038b48a6b0ee
Out4: ae03e817c0dc6048c19b708ce411a058294425b1

Kryptografisch sichere Zufallszeichenketten in PHP generieren

Dieser Generator ist das wichtigste und hilfreichste Feature von PHP. Alle Generatoren, die wir oben diskutieren werden, sind nicht kryptografisch sicher. Kryptografisch sicher bedeutet, dass auch eine zufällige Zeichenkette generiert werden kann. Für Dritte ist es jedoch schwierig, dieselbe Zufallszahl zu generieren. Deshalb können wir sagen, dass es kryptografisch sicher ist.

random_bytes($length) ist die Funktion, die eine kryptografisch sichere ZufallsZeichenkette erzeugen kann. Der Benutzer gibt den Längenparameter an. Siehe das folgende Beispiel.

<?php
 
echo "Output-1: ",bin2hex(random_bytes(10)),"\n";
 
echo "Output-2: ",bin2hex(random_bytes(20)),"\n";
 
echo "Output-3: ",bin2hex(random_bytes(24)),"\n";
 
?>

Ausgabe:

Output-1: 911fc716798ce464c7c3
Output-2: 182fedf65a90b66139d80dbfc0f82912b73f37cd
Output-3: c3408d3a0dea41251dce940fe550452ca180cf5effaad235

Wie Sie im obigen Code gesehen haben, haben wir die Funktion bin2hex() verwendet. Wenn random_bytes($length) eine bestimmte Ausgabe ergibt, konvertiert bin2hex() diese in hexadezimale Werte. Dies kann den Wert der Funktion random_bytes($length) verdoppeln.

Die Funktion openssl_random_pseudo_bytes($length, &$crypto_strong) wird auch zum Generieren einer zufällig kryptografischen Zeichenkette verwendet. Der Parameter crypto_strong wird verwendet, um zu analysieren, ob der String aus einem kryptografisch sicheren Algorithmus generiert wurde oder nicht.

Wenn wir eine kryptografisch sichere ZufallsZeichenkette wünschen, die alle Zeichenketten von a bis z verwendet, verwenden wir die folgenden Codes.

<?php
 
function secure_random_string($length) {
    $rand_string = '';
    for($i = 0; $i < $length; $i++) {
        $number = random_int(0, 36);
        $character = base_convert($number, 10, 36);
        $rand_string .= $character;
    }
 
    return $rand_string;
}
 
echo "Sec_Out_1: ",secure_random_string(10),"\n";
 
echo  "Sec_Out_2: ",secure_random_string(10),"\n";
 
echo  "Sec_Out_3: ",secure_random_string(10),"\n";
 
?>

Ausgabe:

Sec_Out_1: znxtaqynoi
Sec_Out_2: 10k10zkddntm
Sec_Out_3: ook8gfck6u

Die Länge der ZufallsZeichenkette geben wir in der Funktion secure_random_string() an. In dieser Funktion verwenden wir eine Schleife, in der random_int() zufällige Ganzzahlen aus dem angegebenen spezifischen Bereich generiert. Danach verdecken wir die Ganzzahl von Basis 10 bis 36 mit der Funktion base_convert(). Schließlich stammt unser resultierendes Zeichen aus einer beliebigen Ziffer von 0 bis 9 und einem beliebigen Zeichen von a bis z. Dies ist eine weitere Möglichkeit, eine zufällig kryptografische Zeichenkette zu generieren.

Verwandter Artikel - PHP String