[PHP]利用openssl_random_pseudo_bytes跟base64_encode函数来生成随机字符串
[PHP]利用openssl_random_pseudo_bytes和base64_encode函数来生成随机字符串
openssl_random_pseudo_bytes函数本身是用来生成指定个数的随机字节,因此在使用它来生成随机字符串时,还需要配合使用函数base64_encode。如下所示:
<code class="php hljs "><span class="hljs-keyword">public</span> <span class="hljs-keyword">static</span> <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">getRandomString</span><span class="hljs-params">(<span class="hljs-variable">$length</span> = <span class="hljs-number">42</span>)</span> {</span> <span class="hljs-comment">/* * Use OpenSSL (if available) */</span> <span class="hljs-keyword">if</span> (function_exists(<span class="hljs-string">'openssl_random_pseudo_bytes'</span>)) { <span class="hljs-variable">$bytes</span> = openssl_random_pseudo_bytes(<span class="hljs-variable">$length</span> * <span class="hljs-number">2</span>); <span class="hljs-keyword">if</span> (<span class="hljs-variable">$bytes</span> === <span class="hljs-keyword">false</span>) <span class="hljs-keyword">throw</span> <span class="hljs-keyword">new</span> RuntimeException(<span class="hljs-string">'Unable to generate a random string'</span>); <span class="hljs-keyword">return</span> substr(str_replace([<span class="hljs-string">'/'</span>, <span class="hljs-string">'+'</span>, <span class="hljs-string">'='</span>], <span class="hljs-string">''</span>, base64_encode(<span class="hljs-variable">$bytes</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>); } <span class="hljs-variable">$pool</span> = <span class="hljs-string">'0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'</span>; <span class="hljs-keyword">return</span> substr(str_shuffle(str_repeat(<span class="hljs-variable">$pool</span>, <span class="hljs-number">5</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>); }</code>
在调用base64_encode函数之后,还对结果进行了一次替换操作,目的是要去除随机生成的字符串中不需要的字符。
当然,在使用openssl_random_pseudo_bytes函数之前,最好使用function_exists来确保该函数在运行时是可用的。如果不可用,则使用Plan B:
<code class="php hljs ">substr(str_shuffle(str_repeat(<span class="hljs-variable">$pool</span>, <span class="hljs-number">5</span>)), <span class="hljs-number">0</span>, <span class="hljs-variable">$length</span>);</code>
这个函数的通用性很强,可以根据业务的需要进行适当修改然后当作静态方法进行调用。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Nginx ist eine Software, die häufig in Webservern, Load Balancern, Reverse-Proxys und Caches verwendet wird. Bei der Netzwerkübertragung wird zunehmend auf Datenverschlüsselung und -sicherheit geachtet. Um die Sicherheit der Kommunikation zu verbessern, kann die OpenSSL-Bibliothek zur Implementierung des SSL/TLS-Protokolls zum Schutz der Übertragung sensibler Daten genutzt werden. In diesem Artikel wird erläutert, wie Sie mit Nginx und der OpenSSL-Bibliothek eine sicherere Kommunikation erreichen. Installieren und konfigurieren Sie die OpenSSL-Bibliothek. Zuerst müssen Sie die OpenSSL-Bibliothek auf dem Server installieren. machen kann

Einführung in die Verwendung von OpenSSL zum Generieren eines MySQL-SSL-Zertifikats: MySQL ist ein weit verbreitetes relationales Datenbanksystem. Es ist sehr wichtig, das SSL-Protokoll (SecureSocketsLayer) für die verschlüsselte Kommunikation in tatsächlichen Produktionsumgebungen zu verwenden. In diesem Artikel wird die Verwendung des OpenSSL-Tools zum Generieren eines MySQL-SSL-Zertifikats vorgestellt und entsprechende Codebeispiele bereitgestellt. Schritte: OpenSSL installieren: Stellen Sie zunächst sicher, dass OpenSSL auf Ihrem Computer installiert ist

Dies ist für Benutzer gedacht, die eine manuelle Aktivierung durchführen möchten. Wenn Sie hierfür Hilfe bei einem Tool benötigen, schauen Sie hier nach. Wir können den manuellen Aktivierungsprozess in zwei Teile unterteilen. 1- Stellen Sie anhand der vorgefertigten Batchdatei sicher, dass das Internet aktiviert ist. Öffnen Sie Windows Powershell als Administrator und geben Sie Folgendes ein, um die Befehle in der angegebenen Reihenfolge aufzulisten. Geben Sie den Schlüssel ein (ersetzen Sie ihn durch den Schlüssel aus der Liste oben). Verwenden Sie den folgenden Befehl: <key>slmgr/ipk<key> Laden Sie das Universalticket hier herunter und extrahieren Sie die heruntergeladene Datei. Geben Sie nun den folgenden Code in Powershell ein (Get-ItemProper

Als Open-Source-Betriebssystem verfügt LINUX über ein breites Spektrum an Anwendungen und Benutzergruppen. Es basiert auf dem Quellcode von Red Hat Enterprise Linux (RHEL) und weist ein hohes Maß an Stabilität und Sicherheit auf Es kann auf CentOS7 installiert und konfiguriert werden. OpenBLAS und OpenSSL sind häufige Anforderungen vieler Entwickler und Systemadministratoren. In diesem Artikel wird detailliert beschrieben, wie OpenBLAS und OpenSSL auf CentOS7 installiert und konfiguriert werden. OpenBLAS ist eine Open-Source-Hochleistungs-Mathematikbibliothek, die auf der BLAS-Schnittstelle (BasicLinearAlgebraSubprograms) basiert.

Verwenden Sie die String.length()-Funktion von Java, um die Länge einer Zeichenfolge zu ermitteln. In der Java-Programmierung ist die Zeichenfolge ein sehr häufiger Datentyp. Wir müssen häufig die Länge einer Zeichenfolge ermitteln, dh die Anzahl der Zeichen in der Zeichenfolge. In Java können wir die Funktion length() der String-Klasse verwenden, um die Länge eines Strings zu ermitteln. Hier ist ein einfacher Beispielcode: publicclassStringLengthExample{publ

Java verwendet die nextDouble()-Funktion der Random-Klasse, um zufällige Gleitkommazahlen mit doppelter Genauigkeit zu generieren. Die Random-Klasse in Java ist ein Pseudozufallszahlengenerator, der zum Generieren verschiedener Arten von Zufallszahlen verwendet werden kann. Unter anderem wird die Funktion nextDouble() verwendet, um eine zufällige Gleitkommazahl mit doppelter Genauigkeit zu generieren. Bevor wir die Random-Klasse verwenden, müssen wir das Paket java.util importieren. Als nächstes können wir ein Random-Objekt erstellen und dann die Funktion nextDouble() verwenden

Einfache Verwendung der Python-Random-Bibliotheksdemo Wenn wir Zufallszahlen generieren oder zufällig Elemente aus einer Sequenz auswählen müssen, können wir die in Python integrierte Zufallsbibliothek verwenden. Das Folgende ist ein kommentiertes Beispiel, das zeigt, wie die Zufallsbibliothek verwendet wird: #Zufallsbibliothek importieren importrandom #Eine zufällige Dezimalzahl zwischen 0 und 1 generieren random_float=random.random()print(random_float)#Eine zufällige Dezimalzahl innerhalb des angegebenen Bereichs generieren Zufällig Ganzzahl (einschließlich Endpunkte) random_int=random.randint(1,10)print(random_int)#

In der Go-Sprache ist das Byte-Paket ein Paket zum Bearbeiten von Byte-Typen und enthält viele nützliche Methoden, wie z. B. die Split()-Methode. Bei Verwendung der Split()-Methode kann jedoch der Fehler „undefiniert: bytes.Split“ auftreten. Dieser Fehler wird normalerweise durch inkompatible Go-Versionen oder das Fehlen notwendiger abhängiger Bibliotheken verursacht. In diesem Artikel werden einige Methoden zur Behebung dieses Fehlers vorgestellt. Methode 1: Aktualisieren Sie die Go-Version wie folgt
