Jak wygenerować losowy ciąg w PHP [z przykładami]
Opublikowany: 2020-11-24PHP w momencie swojego uruchomienia oznaczało spersonalizowaną stronę główną . I chociaż jego ewolucyjna podróż dała branży alternatywną i bardziej akceptowalną (rekursywną) definicję jako PHP: Hypertext PreProcessor , prawda o PHP jest taka, że nadal chłonie ducha personalizacji bardziej niż cokolwiek innego.
Obecnie PHP jest najbardziej preferowaną, bezpłatną i otwartą alternatywą dla wszystkich innych wiodących języków konfiguracji serwerów, takich jak ASP (Active Server Pages) firmy Microsoft. Duża część tego aspektu personalizacji jest realizowana przez obecność interpretera PHP po stronie serwera, który może być zaimplementowany jako moduł , demon lub plik wykonywalny .
Interfejsy PHP są pomocne w zarządzaniu ważnymi danymi skoncentrowanymi na użytkowniku, takimi jak UID (unikalne identyfikatory), adresy e-mail, nazwy użytkowników, hasła, poufne informacje kontaktowe i wiele innych.
Wiele, jeśli nie wszystkie, wiodących światowych systemów dynamicznego zarządzania treścią (w tym gigant CMS WordPress), to platformy oparte na PHP, które umożliwiają łatwe tworzenie i utrzymywanie zarówno rekordów użytkowników, jak i rekordów treści, w postaci baz danych dostępnych w PHP .
W tym artykule zbadamy jeden szczególny aspekt PHP, który ułatwia administratorom wypełnienie wszystkich obowiązkowych pól potrzebnych w akcie tworzenia nowego „użytkownika” przy minimalnej interwencji zarówno ze strony administratora, jak i użytkownika . Aby to zrobić, administratorzy muszą nauczyć się generować losowe ciągi PHP i to właśnie omówimy.
Przeczytaj: Pomysły i tematy projektów PHP

Spis treści
Co to jest losowy ciąg PHP?
PHP Random String to unikalny, losowy i alfanumeryczny ciąg znaków, który może być użyty w tablicy jako nazwa pliku, jako losowe rozszerzenie adresu URL, jako hasło lub jako token uwierzytelniający (taki jak zwykłe tokeny API i Tajemnice API widoczne w interfejsie tworzenia aplikacji Facebooka).
Części blogerzy, zwłaszcza ci, którzy używają platform takich jak Medium do publikowania swoich prac, zobaczą ten akt losowego generowania ciągów w akcji za każdym razem, gdy opublikują nową historię lub post – rozszerzenie adresu URL, które następuje po domenie podstawowej, jest zwykle wynikiem dowolny ciąg znaków generowany przez interfejs publikowania.
Na przykład w adresie URL https://medium.com/neli/shiring-revealing-the-best-kept-secret-of-ancient-indian-meditation-c37d87e3386b ostatnia część adresu URL (c37d87e3386b) jest losowo wygenerowany ciąg . Inne łatwe i ważne odniesienia do losowych ciągów PHP obejmują „domyślne” hasła, które są generowane dla wszystkich nowych kont użytkowników w WordPress.
Coraz większa większość konsumenckich platform internetowych również przechodzi na używanie losowych ciągów PHP, aby wykorzystać moc szyfrowania, umożliwiając logowanie się za pomocą „magicznego łącza”. Jeśli kiedykolwiek korzystałeś z usługi opartej na chmurze, która używa logowania za pomocą „magicznego łącza”, znasz już łatwość, wydajność i ulepszoną warstwę bezpieczeństwa zapewnianą przez generowanie i mapowanie losowych ciągów PHP.
Jak wygenerować losowy ciąg PHP?
Zadaniem jest napisanie kodu, który generuje losowe, alfanumeryczne i unikalne ciągi za pomocą PHP. Można to osiągnąć na cztery różne sposoby:
- Używając brute force (losowe indeksowanie) – jest to zdecydowanie najłatwiejsza, ale prymitywna metoda uzyskania losowego ciągu PHP.
- Za pomocą funkcji „ haszujących ” (algorytmiczne generowanie losowych ciągów PHP – jest to trochę bardziej inteligentne podejście w porównaniu z użyciem brute force)
- Używając wbudowanej funkcji uniqid() (jest to proste i wykorzystuje wbudowaną funkcjonalność PHP do generowania unikalnych identyfikatorów dla elementów)
- Używając random_bytes() , a następnie bin2hex() – generuje kryptograficznie bezpieczne losowe bajty i oferuje niesamowitą funkcjonalność interfejsom, takim jak loterie online, gry w pokera online i inne platformy, które wymagają generowania liczb w czasie rzeczywistym z prawdziwą randomizacją wbudowaną w ich rdzeń.
Przeczytaj także: Możliwości kariery w PHP

Generowanie losowego ciągu PHP za pomocą Brute Force
Koncepcja brute force generowania losowych ciągów w PHP jest najprostsza do zrozumienia i najłatwiejsza do wdrożenia. Ogólnie rzecz biorąc, podejście brute force można wyjaśnić w czterech prostych krokach:
- Połącz wszystkie możliwe znaki i umieść je w jednym ciągu (jest to repozytorium przestrzeni przykładowej wszystkich dozwolonych znaków w ciągu).
- Wygeneruj „losowy indeks”, który zaczyna się od 0 (zero) i rozciąga się na długość ciągu „-1”.
- Wydrukuj znak w bieżącej pozycji indeksu.
- Jeśli X to liczba znaków, których potrzebujesz w swoim łańcuchu (pożądana długość łańcucha), powtórz kroki 1, 2 i 3 w sumie X razy w całej pętli instrukcji.
Jak widać w przykładowej implementacji kodu poniżej, jest to zdecydowanie najprostszy sposób generowania losowego ciągu w PHP.
Przykładowy kod:
<?php
$n=10;
funkcja getName($n) {
$znaków = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$losowyString = ”;
for ($i = 0; $i < $n; $i++) {
$indeks = rand(0, strlen($znaki) – 1);
$losowyString .= $znaki[$indeks];
}
return $losowyString;
}
echo pobierzNazwę($n);
?>
Koniecznie przeczytaj: Pytania i odpowiedzi dotyczące PHP podczas rozmowy kwalifikacyjnej
Generowanie losowego ciągu PHP za pomocą funkcji „haszujących”
PHP ma kilka wbudowanych funkcji znanych jako „ funkcje mieszające ”, takie jak md5 (), sha1 () i hash (). Funkcje te mogą służyć do „haszowania” ciągu znaków zdefiniowanego przez określone algorytmy, takie jak „sha1”, „sha256” i „md5”. We wszystkich tych funkcjach argumentem jest łańcuch, a wyjściem jest alfanumeryczny zaszyfrowany łańcuch (jak widać w przykładowym kodzie poniżej).
Przykładowy kod:
<?php
$str=rand();
$wynik = md5($str);
echo $wynik;
?>
Generowanie losowego ciągu PHP za pomocą wbudowanej funkcji „uniqid()”
PHP zachowuje pozory swojej wartości jako narzędzie do personalizacji par excellence, ze specjalnymi wbudowanymi funkcjami, takimi jak uniqid(), które można wykorzystać do wygenerowania „unikalnego identyfikatora (UID)” pochodzącego z bieżącego czasu, zapisanego w mikrosekundy (znane również jako „mikroczas”).
W domyślnej składni funkcja uniqid() zawsze zwraca unikalny ciąg alfanumeryczny o długości 13 znaków. Możesz użyć poniższego przykładowego kodu, aby przetestować implementację metody uniqid().
Przykładowy kod:
<?php
$wynik = uniqid();
echo $wynik;
?>
Generowanie losowego ciągu PHP za pomocą random_bytes() i bin2hex()
Jest to zdecydowanie najbardziej rozwinięty i bezpieczny sposób generowania „pseudolosowych” bajtów, a następnie konwertowania ich na format szesnastkowy, aby dodać warstwę szyfrowania do istniejącej randomizacji.
Pierwszym krokiem jest wywołanie wbudowanej funkcji random_bytes () w celu wygenerowania kryptograficznie bezpiecznych losowych bajtów. Następnym krokiem jest wywołanie funkcji bin2hex (), która użyje tych danych binarnych (liczby bajtów) jako argumentu i wygeneruje odpowiednią wartość szesnastkową jako wynik, który jest doskonale użytecznym i Jest to lepiej wyjaśnione w poniższym przykładowym kodzie.
Przykładowy kod:
<?php

$n = 20;
$wynik = bin2hex(losowe_bajty($n));
echo $wynik;
?>
Co następne?
upGrad oferuje programowanie w PHP i wiele więcej dzięki dyplomowi PG upGrad w specjalizacji programistycznej w zakresie pełnego rozwoju stosu . Program, który sprawi, że staniesz się pełnoprawnym programistą i nauczysz się tworzyć niesamowite aplikacje. Jest to rozbudowany 12-miesięczny program, który obejmuje pracę nad projektami i zadaniami na żywo, a także szkolenie 15 języków programowania i narzędzi. Wraz z nim zapewnia wsparcie w karierze przez cały czas z próbnymi rozmowami kwalifikacyjnymi i pomocą w pracy.