Come generare una stringa casuale in PHP [con esempi]
Pubblicato: 2020-11-24PHP, al momento del suo lancio, stava per Pagina iniziale personalizzata . E mentre il suo viaggio evolutivo ha dato all'industria una definizione alternativa e più accettabile (ricorsiva) come PHP: Hypertext PreProcessor , la verità su PHP è che assorbe ancora lo spirito di personalizzazione più di ogni altra cosa.
Oggi, PHP è l'alternativa più preferita, gratuita e open source a tutti gli altri principali linguaggi di configurazione del server, come ASP (Active Server Pages) di Microsoft. Gran parte di questo aspetto di personalizzazione è portato avanti dalla presenza di un interprete PHP lato server, che può essere implementato sia come modulo , demone o eseguibile .
Le interfacce PHP sono utili nella gestione di importanti dati incentrati sull'utente come UID (Unique Identifiers), indirizzi e-mail, nomi utente, password, informazioni di contatto riservate e molto altro.
Molti, se non tutti, i principali sistemi di gestione dei contenuti dinamici del mondo (incluso il gigante dei CMS WordPress), sono piattaforme basate su PHP che consentono la facile creazione e manutenzione sia dei record degli utenti che dei record dei contenuti, sotto forma di database accessibili tramite PHP .
In questo articolo esploreremo un aspetto particolare di PHP che rende così facile per gli amministratori compilare tutti i campi obbligatori necessari nell'atto di creare un nuovo "utente" con il minimo intervento sia dal lato amministratore che da quello utente . Per fare ciò, gli amministratori devono imparare a generare stringhe casuali PHP, ed è quello che tratteremo.
Leggi: Idee e argomenti per progetti PHP

Sommario
Che cos'è una stringa casuale PHP?
Una stringa casuale PHP è una stringa di caratteri univoca, randomizzata e alfanumerica che può essere utilizzata in un array come nome file, estensione URL casuale, password o token di autenticazione (come i comuni token API e Segreti API visti sull'interfaccia di sviluppo dell'app di Facebook).
I blogger frequenti, in particolare quelli che utilizzano piattaforme come Medium per pubblicare i propri lavori, vedranno in azione questo atto di generazione casuale di stringhe ogni volta che pubblicano una nuova storia o un nuovo post: l'estensione URL che segue il dominio di base è solitamente il risultato di un stringa arbitraria generata dall'interfaccia di pubblicazione.
Ad esempio, nell'URL https://medium.com/neli/shiring-revealing-the-best-kept-secret-of-ancient-indian-meditation-c37d87e3386b , l'ultima parte dell'URL (c37d87e3386b) è casuale stringa generata . Altri riferimenti facili e importanti delle stringhe casuali PHP includono le password "predefinite" che vengono generate per tutti i nuovi account utente su WordPress.
Una crescente maggioranza delle piattaforme Internet dei consumatori si sta anche spostando verso l'uso di stringhe casuali PHP per sfruttare la potenza della crittografia nell'abilitazione degli accessi con "collegamento magico". Se hai mai utilizzato un servizio basato su cloud che utilizza un "collegamento magico" di accesso, hai già familiarità con la facilità, l'efficienza e il livello di sicurezza avanzato fornito con la generazione e la mappatura di stringhe casuali PHP.
Come generare una stringa casuale PHP?
Il compito da svolgere è scrivere codice che generi stringhe casuali, alfanumeriche e univoche utilizzando PHP. Ci sono quattro diversi modi in cui ciò può essere ottenuto:
- Usando la forza bruta (indicizzazione casuale) –Questo è di gran lunga il metodo più semplice, ma allo stesso tempo grezzo, per ottenere una stringa casuale PHP.
- Usando le funzioni di " hashing " (generazione algoritmica di stringhe casuali PHP - questo è un approccio un po' più intelligente rispetto all'uso della forza bruta)
- Utilizzando la funzione uniqid() integrata (questo è semplice e sfrutta una funzionalità PHP integrata per generare identificatori univoci per gli elementi)
- Utilizzando random_bytes() seguito da bin2hex() , genera byte casuali crittograficamente sicuri e offre funzionalità straordinarie a interfacce come lotterie online, giochi di poker online e altre piattaforme che richiedono la generazione di numeri in tempo reale con una vera randomizzazione incorporata nel loro nucleo.
Leggi anche: Opportunità di carriera in PHP

Generazione di una stringa casuale PHP usando Brute Force
Il concetto di forza bruta della generazione di stringhe casuali in PHP è il più semplice da capire e il più facile da implementare. In generale, l'approccio della forza bruta può essere spiegato in quattro semplici passaggi:
- Raggruppa tutti i caratteri possibili e inseriscili in una stringa (questo è il repository dello spazio campione di tutti i caratteri consentiti nella stringa).
- Genera un "indice casuale" che inizia da 0 (zero) e si estende alla lunghezza della stringa "-1".
- Stampa un carattere nella posizione dell'indice corrente.
- Se X è il numero di caratteri di cui hai bisogno nella stringa (la lunghezza della stringa desiderata), ripeti i passaggi 1, 2 e 3 per un totale di X volte nel ciclo di istruzioni totale.
Come puoi vedere nell'implementazione del codice di esempio di seguito, questo è di gran lunga il modo più semplice per generare una stringa casuale in PHP.
Codice d'esempio:
<?php
$n=10;
funzione getName($n) {
$caratteri = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$Stringa casuale = ”;
for ($i = 0; $i < $n; $i++) {
$indice = rand(0, strlen($caratteri) – 1);
$stringa casuale.= $caratteri[$indice];
}
restituisce $stringa casuale;
}
echo getName($n);
?>
Da leggere: Domande e risposte sull'intervista PHP
Generazione di una stringa casuale PHP utilizzando le funzioni "Hashing".
PHP ha alcune funzioni integrate note come " funzioni di hashing ", come md5 (), sha1 () e hash (). Queste funzioni possono essere utilizzate per "hash" una stringa definita da algoritmi specifici come "sha1", "sha256" e "md5". In tutte queste funzioni, l'argomento è una stringa e l'output è una stringa hash alfanumerica (come mostrato nel codice di esempio seguente).
Codice d'esempio:
<?php
$str=rand();
$risultato = md5($str);
eco $risultato;
?>
Generazione di una stringa casuale PHP utilizzando la funzione integrata "uniqid()".
PHP conserva una parvenza del suo valore come strumento di personalizzazione per eccellenza, con speciali funzioni integrate come uniqid(), che possono essere utilizzate per generare un "Unique ID (UID)" che è derivato dall'ora corrente, registrato in microsecondi (noto anche come "micro tempo").
Sotto la sintassi predefinita, la funzione uniqid() restituisce sempre una stringa alfanumerica univoca che ha una lunghezza di stringa di 13 caratteri. È possibile utilizzare il codice di esempio riportato di seguito per testare un'implementazione del metodo uniqid().
Codice d'esempio:
<?php
$risultato = uniqid();
eco $risultato;
?>
Generazione di una stringa casuale PHP utilizzando random_bytes() e bin2hex()
Questo, di gran lunga, è il modo più evoluto e sicuro per generare byte "pseudo-casuali" e poi convertirli in un formato esadecimale per aggiungere uno strato di crittografia alla randomizzazione esistente.
Il primo passaggio consiste nel chiamare la funzione incorporata random_bytes () per generare byte casuali crittograficamente sicuri. Il passaggio successivo consiste nel chiamare la funzione bin2hex () che utilizzerà questi dati binari (numero di byte) come argomento e genererà un valore esadecimale corrispondente come output, che è una stringa Questo è meglio spiegato nel codice di esempio riportato di seguito.
Codice d'esempio:
<?php

$n = 20;
$risultato = bin2hex(byte_casuali($n));
eco $risultato;
?>
Cosa succede dopo?
upGrad porta la programmazione con PHP e molto altro con il diploma PG di upGrad in specializzazione in sviluppo software in Full Stack Development . Un programma per farti emergere come sviluppatore full stack e imparare a costruire alcune delle fantastiche applicazioni. È un ampio programma di 12 mesi che include il lavoro su progetti e incarichi dal vivo e anche la formazione di 15 linguaggi e strumenti di programmazione. Insieme ad esso, ha un supporto professionale continuo con finti colloqui e assistenza sul lavoro.