Prosta sprawa, ale w gdy się poszuka
php random string to
można znaleźć straszne głupoty. No, ale zwykle są artykuły starszej daty. W PHP jest wiele gotowych rozwiązań (
rand,
mt_rand,
uniqid,
array_rand,
openssl_random_pseudo_bytes), ale często źle używanych.
Działania matematyczne
Są dwa dedykowane rozwiązania generujące integer w danym zasięgu:
rand i
mt_rand. Zdecydowanie należy wybierać ten drugi - jest szybszy i o większym zasięgu.
mt_rand( int $min, int $max )
Unikalny identyfikator
W kwestii ID pomocny jest
uniqid, ma on dwa parametry: mało przydatny prefix i powiększenie entropii.
uniqid( string $prefix, bool $entropy )
Tablice
W przypadku potrzeby wylosowania wartości z tablicy jest
array_rand. Wystarczy podać tablicę i opcjonalnie ilość elementów do zwrócenia.
array_rand( array $input, int $number = 1 )
Bezpieczeństwo
Najważniejszą wspomnianą funkcją jest
openssl_random_pseudo_bytes. Jest przeznaczony stricte do zadań takich jak generowanie soli dla hasła. Jako że zwraca dane binarne wraz z nim warto użyć bin2hex.
bin2hex( openssl_random_pseudo_bytes() )
Brak komentarzy:
Prześlij komentarz