Generowanie losowych znaków w PHP
Wygenerowanie losowego ciągu znaków - można to zrobić na wiele sposobów, ale ich rezultaty są bardziej, lub mniej przewidywalne.
Generowanie uniqid()
Ta funkcja zwraca losowy ciąg znaków na podstawie timestampa, czyli bieżącej daty i godziny. Przyjmuje dwa opcjonalne parametry - prefix i wygenerowanie dodatkowego ciągu znaków.
<?php
// 5fc3d25cba7f6
echo uniqid();
// prefix_5fc3d25cba7f8
echo uniqid('prefix_');
// prefix_5fc3d25cba7f90.57409045
echo uniqid('prefix_', true);
?>
Generowanie losowych znaków
Funkcja time() zwraca obecny czas. md5() domyślnie zwraca 32 znaków, a sha1() 40 znaków, więc dzięki substr() możemy ten ciąg uciąć do odpowiednich rozmiarów.
<?php
// 62f43775b4fc313e72d8b5c6050f063fe4b93032
echo sha1(time());
// 49c4a4a2deb6273ffda85c4b45161201
echo md5(time());
// 3d40008475762363bd93
echo substr(md5(time()), 0, 20);
// 36f6df1e0e46a4b45174
echo substr(sha1(time()), 0, 20);
?>
Najbezpieczniejszy losowy ciąg znaków
Ostatni punkt to najmniej przewidywalny ciąg znaków, tym samym najbardziej bezpieczny. Można go spokojnie wykorzystać do różnych portali, kont internetowych i formularzy rejestracyjnych. Wyjaśniając - random_bytes() zwraca losowe bajty. Warto na tą funkcję nałożyć drugą bin2hex - zmieni bajty na dwukrotnie dłuższy ciąg znaków.
<?php
// a93369e6fb91cd28d6140f54808132eb35c1d2ec90eea8752ad7c09a91c1433d
echo bin2hex(random_bytes(32));
?>
Na itporady.pl znajdziesz także generator bezpiecznych haseł - sprawdź koniecznie w narzędziach online.
Kategorie: PHP + MySQL. Tagi: #php, #skrypty. Źródło obrazków: Pixabay, Font awesome.