Cum se generează un șir aleatoriu în PHP [cu exemple]
Publicat: 2020-11-24PHP, la momentul lansării sale, reprezintă Pagina de pornire personalizată . Și în timp ce călătoria sa evolutivă a oferit industriei o definiție alternativă și mai acceptabilă (recursivă) ca PHP: Hypertext PreProcessor , adevărul despre PHP este că încă îmbibă spiritul de personalizare mai mult decât orice altceva.
Astăzi, PHP este cea mai preferată, gratuită și open-source alternativă la toate celelalte limbaje de conducere de configurare a serverului, cum ar fi ASP (Active Server Pages) de la Microsoft. O mare parte a acestui aspect de personalizare este dusă mai departe de prezența unui interpret PHP la nivelul serverului, care poate fi implementat fie ca modul , demon sau executabil .
Interfețele PHP sunt utile în gestionarea datelor importante centrate pe utilizator, cum ar fi UID-uri (identificatori unici), adrese de e-mail, nume de utilizator, parole, informații confidențiale de contact și multe altele.
Multe, dacă nu toate, dintre cele mai importante sisteme dinamice de management al conținutului din lume (inclusiv gigantul CMS WordPress), sunt platforme bazate pe PHP, care permit crearea și întreținerea ușoară atât a înregistrărilor utilizatorilor, cât și a înregistrărilor de conținut, sub formă de baze de date accesibile PHP. .
În acest articol, vom explora un aspect particular al PHP care face atât de ușor pentru administratori să completeze toate câmpurile obligatorii necesare în momentul creării unui nou „utilizator” cu intervenție minimă atât din partea administratorului, cât și din partea utilizatorului. . Pentru a face acest lucru, administratorii trebuie să învețe cum să genereze șiruri aleatoare PHP și asta este ceea ce vom trata.
Citiți: Idei și subiecte de proiecte PHP

Cuprins
Ce este un șir aleatoriu PHP?
Un șir aleatoriu PHP este un șir de caractere unic, randomizat și alfanumeric care poate fi utilizat într-o matrice ca nume de fișier, ca extensie URL aleatorie, ca parolă sau ca simbol de autentificare (cum ar fi jetoanele obișnuite API și Secretele API așa cum se vede pe interfața de dezvoltare a aplicațiilor Facebook).
Bloggerii frecventi, în special cei care folosesc platforme precum Medium pentru a-și publica munca, vor vedea acest act de generare aleatorie de șiruri în acțiune ori de câte ori publică o nouă poveste sau o postare – extensia URL care urmează domeniul de bază, este de obicei rezultatul unei șir arbitrar generat de interfața de publicare.
De exemplu, în adresa URL https://medium.com/neli/shiring-revealing-the-best-kept-secret-of-ancient-indian-meditation- c37d87e3386b , ultima parte a adresei URL (c37d87e3386b) este un șir generat . Alte referințe ușoare și importante ale șirurilor aleatoare PHP includ parolele „implicite” care sunt generate pentru toate conturile de utilizator noi pe WordPress.
O majoritate din ce în ce mai mare a platformelor de internet pentru consumatori se îndreaptă, de asemenea, către utilizarea șirurilor aleatoare PHP pentru a valorifica puterea criptării pentru a permite conectările prin „legatură magică”. Dacă ați folosit vreodată un serviciu bazat pe cloud care utilizează o conectare cu „legatură magică”, sunteți deja familiarizat cu ușurința, eficiența și nivelul îmbunătățit de securitate care este furnizat cu generarea și maparea șirurilor aleatoare PHP.
Cum se generează un șir aleatoriu PHP?
Sarcina la îndemână este de a scrie cod care generează șiruri aleatorii, alfanumerice și unice folosind PHP. Există patru moduri diferite în care acest lucru poate fi realizat:
- Prin utilizarea forței brute (indexare aleatorie) – Aceasta este de departe cea mai ușoară, dar totuși o metodă brută de a obține un șir aleator PHP.
- Prin utilizarea funcțiilor „ hashing ” (generare algoritmică de șiruri aleatoare PHP – aceasta este o abordare puțin mai inteligentă în comparație cu utilizarea forței brute)
- Prin utilizarea funcției încorporate uniqid() (acest lucru este simplu și folosește o funcționalitate PHP încorporată pentru a genera identificatori unici pentru elemente)
- Folosind random_bytes() urmat de bin2hex() – lui generează octeți aleatori securizați criptografic și oferă o funcționalitate uimitoare la interfețe precum loteriile online, jocurile de poker online și alte platforme care necesită generarea de numere în timp real cu randomizare adevărată încorporată în nucleul lor.
Citește și: Oportunități de carieră în PHP

Generarea unui șir aleatoriu PHP folosind Brute Force
Conceptul de forță brută de generare aleatorie de șiruri în PHP este cel mai simplu de înțeles și cel mai ușor de implementat. În linii mari, abordarea forței brute poate fi explicată în patru pași simpli:
- Clubați toate caracterele posibile și puneți-le într-un șir (acesta este depozitul dvs. de eșantion al tuturor caracterelor permise din șirul dvs.).
- Generați un „index aleatoriu” care începe de la 0 (zero) și se extinde până la lungimea șirului „-1”.
- Tipăriți un caracter la poziția curentă a indexului.
- Dacă X este numărul de caractere de care aveți nevoie în șirul dvs. (lungimea dorită a șirului), atunci repetați pașii 1, 2 și 3 de X ori în total în bucla totală de instrucțiuni.
După cum puteți vedea în exemplul de implementare a codului de mai jos, acesta este de departe cel mai simplu mod de a genera un șir aleator în PHP.
Cod simplu:
<?php
$n=10;
funcția getName($n) {
$caractere = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = ”;
pentru ($i = 0; $i < $n; $i++) {
$index = rand(0, strlen($caractere) – 1);
$randomString .= $caractere[$index];
}
returnează $randomString;
}
echo getName($n);
?>
Trebuie citit: Întrebări și răspunsuri la interviu PHP
Generarea unui șir aleatoriu PHP folosind funcțiile „Hashing”.
PHP are unele funcții încorporate cunoscute sub numele de „ funcții hashing ”, cum ar fi md5 (), sha1 () și hash (). Aceste funcții pot fi folosite pentru a „hash” un șir definit de algoritmi specifici, cum ar fi „sha1”, „sha256” și „md5”. În toate aceste funcții, argumentul este un șir, iar rezultatul este un șir alfanumeric hashed (Așa cum se vede în exemplul de cod de mai jos).
Cod simplu:
<?php
$str=rand();
$rezultat = md5($str);
echo $rezultat;
?>
Generarea unui șir aleatoriu PHP folosind funcția „uniqid()” încorporată
PHP păstrează o aparență a valorii sale ca instrument de personalizare prin excelență, cu funcții speciale încorporate, cum ar fi uniqid(), care poate fi folosit pentru a genera un „ID unic (UID)” care este derivat din timpul curent, înregistrat în microsecunde (cunoscut și ca „microtimp”).
În sintaxa implicită, funcția uniqid() returnează întotdeauna un șir alfanumeric unic care are o lungime de șir de 13 caractere. Puteți folosi exemplul de cod de mai jos pentru a testa o implementare a metodei uniqid().
Cod simplu:
<?php
$rezultat = uniqid();
echo $rezultat;
?>
Generarea unui șir aleatoriu PHP folosind random_bytes() și bin2hex()
Acesta, de departe, este cel mai evoluat și mai sigur mod de a genera octeți „pseudo-aleatorii” și apoi de a le converti într-un format hexazecimal pentru a adăuga un strat de criptare la randomizarea existentă.
Primul pas este să apelați funcția încorporată random_bytes () pentru a genera octeți aleatori securizați criptografic. Următorul pas este să apelați funcția bin2hex () care va folosi aceste date binare (număr de octeți) ca argument și va genera o valoare hexazecimală corespunzătoare ca rezultat, care este un șir Acest lucru este explicat mai bine în exemplul de cod de mai jos.
Cod simplu:
<?php

$n = 20;
$rezultat = bin2hex(random_bytes($n));
echo $rezultat;
?>
Ce urmează?
upGrad aduce programare cu PHP și multe altele cu Diploma PG de la upGrad în Dezvoltare de Software Specializare în Dezvoltare Full Stack . Un program care te face să devii un dezvoltator full stack și să înveți să construiești unele dintre aplicațiile minunate. Este un program extins de 12 luni care include lucrul la proiecte și sarcini live și, de asemenea, instruirea a 15 limbaje și instrumente de programare. Împreună cu acesta, are suport permanent în carieră, cu simulate de interviuri și asistență la locul de muncă.