In PHP ist das Generieren von Zufallszahlen ein sehr häufiger Vorgang in der Entwicklung, z. B. für Verifizierungscodes, das zufällige Extrahieren von Daten, das Generieren eindeutiger Bezeichner usw. PHP bietet eine Vielzahl von Funktionen zur Implementierung dieser Funktion. Nachfolgend erfahren Sie mehr darüber.
rand() ist die grundlegendste Funktion zur Generierung von Zufallszahlen, die zufällige Ganzzahlen innerhalb eines bestimmten Bereichs generieren kann:
$randomNumber = rand(0, 100); // erzeugen0ankommen100zufällige ganze Zahl zwischenDie Funktion rand() eignet sich für allgemeine Anwendungen, die keine hohe Zufälligkeit erfordern.
mt_rand() basiert auf dem Mersenne-Rotationsalgorithmus und die erzeugten Zufallszahlen sind effizienter und gleichmäßiger verteilt als rand():
$randomNumber = mt_rand(0, 100); // erzeugen0ankommen100zufällige ganze Zahl zwischenIn den meisten Fällen wird empfohlen, mt_rand() anstelle von rand() zu verwenden.
random_int() ist eine in PHP7 eingeführte Funktion. Es wird zum Generieren zufälliger Ganzzahlen innerhalb eines bestimmten Bereichs verwendet und bietet eine höhere Sicherheit. Es eignet sich sehr gut für kryptographiebezogene Anwendungen:
$randomNumber = random_int(0, 100); // erzeugen0ankommen100sichere zufällige Ganzzahl zwischenWenn Sie eine zufällige Folge von Bytes generieren müssen, um beispielsweise Verschlüsselungsschlüssel oder zufällige Zeichenfolgen zu generieren, können Sie random_bytes() verwenden:
$bytes = random_bytes(16); // erzeugen16Eine zufällige Folge von BytesEine Folge von Bytes kann über bin2hex() in einen lesbaren Hexadezimalstring umgewandelt werden.
Obwohl PHP nicht über eine integrierte random_float()-Funktion verfügt, kann die Erzeugung zufälliger Gleitkommazahlen durch einfache Berechnungen erreicht werden:
$randomFloat = mt_rand() / mt_getrandmax(); // erzeugen0ankommen1zufällige Gleitkommazahl zwischenWenn Ihre Anwendung extrem hohe Sicherheitsanforderungen hat, wie zum Beispiel die Generierung von Tokens oder Sitzungsschlüsseln, können Sie openssl_random_pseudo_bytes() verwenden:
$secureBytes = openssl_random_pseudo_bytes(32); // erzeugen32Eine sichere Zufallsfolge von BytesPHP bietet eine Vielzahl von Methoden zur Zufallszahlengenerierung, und unterschiedliche Funktionen eignen sich für unterschiedliche Szenarien:
Durch die Auswahl der richtigen Funktionen können Sie die Sicherheit und Leistung Ihres Programms verbessern.