Php скрипт генератор случайных чисел

random_int

Generates a uniformly selected integer between the given minimum and maximum.

The randomness generated by this function is suitable for all applications, including the generation of long-term secrets, such as encryption keys.

The sources of randomness in the order of priority are as follows:

  • Linux: » getrandom(), /dev/urandom
  • FreeBSD >= 12 (PHP >= 7.3): » getrandom(), /dev/urandom
  • Windows (PHP >= 7.2): » CNG-API Windows: » CryptGenRandom
  • macOS (PHP >= 8.2; >= 8.1.9; >= 8.0.22 if CCRandomGenerateBytes is available at compile time): CCRandomGenerateBytes() macOS (PHP >= 8.1; >= 8.0.2): arc4random_buf(), /dev/urandom
  • NetBSD >= 7 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom
  • OpenBSD >= 5.5 (PHP >= 7.1; >= 7.0.1): arc4random_buf(), /dev/urandom
  • DragonflyBSD (PHP >= 8.1): » getrandom(), /dev/urandom
  • Solaris (PHP >= 8.1): » getrandom(), /dev/urandom
  • Any combination of operating system and PHP version not previously mentioned: /dev/urandom
  • If none of the sources are available or they all fail to generate randomness, then a Random\RandomException will be thrown.

Note: Although this function was added to PHP in PHP 7.0, a » userland implementation is available for PHP 5.2 to 5.6, inclusive.

Parameters

The lowest value to be returned.

Читайте также:  Php абсолютный путь скрипта

The highest value to be returned.

Return Values

A cryptographically secure, uniformly selected integer from the closed interval [ min , max ]. Both min and max are possible return values.

Errors/Exceptions

  • If an appropriate source of randomness cannot be found, a Random\RandomException will be thrown.
  • If max is less than min , an ValueError will be thrown.

Changelog

Version Description
8.2.0 In case of a CSPRNG failure, this function will now throw a Random\RandomException . Previously a plain Exception was thrown.

Examples

Example #1 random_int() example

The above example will output something similar to:

See Also

User Contributed Notes 3 notes

Here is a simple backporting function, it works for PHP >= 5.1

if (! function_exists ( ‘random_int’ )) function random_int ( $min , $max ) if (! function_exists ( ‘mcrypt_create_iv’ )) trigger_error (
‘mcrypt must be loaded for random_int to work’ ,
E_USER_WARNING
);
return null ;
>

if (! is_int ( $min ) || ! is_int ( $max )) trigger_error ( ‘$min and $max must be integer values’ , E_USER_NOTICE );
$min = (int) $min ;
$max = (int) $max ;
>

if ( $min > $max ) trigger_error ( ‘$max can\’t be lesser than $min’ , E_USER_WARNING );
return null ;
>

$range = $counter = $max — $min ;
$bits = 1 ;

$bytes = (int) max ( ceil ( $bits / 8 ), 1 );
$bitmask = pow ( 2 , $bits ) — 1 ;

if ( $bitmask >= PHP_INT_MAX ) $bitmask = PHP_INT_MAX ;
>

do $result = hexdec (
bin2hex (
mcrypt_create_iv ( $bytes , MCRYPT_DEV_URANDOM )
)
) & $bitmask ;
> while ( $result > $range );

return $result + $min ;
>
>
?>

Randomness test

$max = 100 ; // number of random values
$test = 1000000 ;

$array = array_fill ( 0 , $max , 0 );

for ( $i = 0 ; $i < $test ; ++ $i ) ++ $array [ random_int ( 0 , $max - 1 )];
>

function arrayFormatResult (& $item ) global $test , $max ; // try to avoid this nowdays 😉

$perc = ( $item /( $test / $max ))- 1 ;
$item .= ‘ ‘ . number_format ( $perc , 4 , ‘.’ , » ) . ‘%’ ;
>

array_walk ( $array , ‘arrayFormatResult’ );

Источник

rand

При вызове без параметров min и max , возвращает псевдослучайное целое в диапазоне от 0 до getrandmax() . Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand(5, 15).

Замечание: На некоторых платформах (таких как Windows) getrandmax() всего лишь 32767. Чтобы расширить диапазон, используйте параметры min и max , или обратитесь к функции mt_rand() .

Список параметров

Наименьшее значение, которое может быть возвращено (по умолчанию: 0)

Наибольшее значение, которое может быть возвращено (по умолчанию: getrandmax() )

Возвращаемые значения

Псевдослучайное значение в диапазоне от min (или 0) до max (или getrandmax() ).

Примеры

Пример #1 Пример использования rand()

Результатом выполнения данного примера будет что-то подобное:

Примечания

Данная функция не генерирует криптографически безопасные значения и не должна использоваться в криптографических целях. Если вам требуется криптографически безопасное значение, подумайте об использовании функции openssl_random_pseudo_bytes() вместо данной.

Смотрите также

  • srand() — Изменяет начальное число генератора псевдослучайных чисел
  • getrandmax() — Возвращает максимально возможное случайное число
  • mt_rand() — Генерирует случайное значение методом mt
  • openssl_random_pseudo_bytes() — Generate a pseudo-random string of bytes

Источник

rand

При вызове без параметров min и max , возвращает псевдослучайное целое в диапазоне от 0 до getrandmax() . Например, если вам нужно случайное число между 5 и 15 (включительно), вызовите rand(5, 15) .

Функция не создаёт криптографически защищённые значения и не должна использоваться для криптографических целей или целей, требующих, чтобы возвращаемые значения были недоступны для разгадывания.

Если требуется криптографически безопасная случайная последовательность, Random\Randomizer может использоваться с движком Random\Engine\Secure . Для простых случаев использования функции random_int() и random_bytes() предоставляют удобный и безопасный API, поддерживаемый CSPRNG операционной системы.

Замечание: На некоторых платформах (таких как Windows) getrandmax() всего лишь 32767. Чтобы расширить диапазон, используйте параметры min и max , или обратитесь к функции mt_rand() .

Замечание: Начиная с PHP 7.1.0, rand() использует тот же алгоритм получения случайных чисел, что и mt_rand() . Для сохранения обратной совместимости, функция rand() позволяет задавать параметр max меньше, чем параметр min . Функция mt_rand() в такой ситуации будет возвращать false

Список параметров

Наименьшее значение, которое может быть возвращено (по умолчанию: 0)

Наибольшее значение, которое может быть возвращено (по умолчанию: getrandmax() )

Возвращаемые значения

Псевдослучайное значение в диапазоне от min (или 0) до max (или getrandmax() ).

Список изменений

Примеры

Пример #1 Пример использования rand()

Результатом выполнения данного примера будет что-то подобное:

Источник

Random Number Generator in PHP

Random Number Generator in PHP

In this article, we will be learning about a random number generator in PHP. So what is random number generator?

We can generate random numbers or integers using built-in functions. What do these functions do? These functions within a range of min and max generate different sets of numbers. And every time you call this function it will generate a number that is unique. We can generate any numbered digits like 2digit number, 3digit number and so on.

Web development, programming languages, Software testing & others

The numbers get shuffled within the range and are generated accordingly. There are various built-in functions to generate random numbers.

Random Number Generator Functions

Now we will be learning about different functions that generate pseudo-random numbers:

  • rand() function without range, rand() function with range: This function when called returns a random number. When the min and max are provided to the function, it generates a random number within the range.
  • mt_rand() function: This function is similar to rand(). mt in mt_rand() stands for Mersenne Twister. The mt_rand() function is a random number generator and returns an integer value. It generates a pseudo-random number like the rand() function does. It was the first pseudo-random number generator. It is an advanced form of older random number generator. It is fast, efficient and provides high-quality integers.
  • getrandmax() function: There are no parameters defined for this function and as the name suggests it returns the largest or maximum possible random number.
  • mt_getrandmax() function: It is similar to getrandmax() function and it also returns the largest or maximum possible random number. Here again mt stands for Mersenne Twister which is an algorithm for generating random numbers.
  • srand(seed) function: This function seeds the random number generator with the given seed value if not given this function seeds with a random number
  • mt_srand(seed): This function is similar to srand() function and this function seeds the random number generator with the given seed value.

We will learn the syntax followed by the examples of each type of function mentioned.

1. rand() Function

'.'Following are the different random values'; echo '
'; echo '
'. rand(); echo '
'; echo '
'. rand(); echo '
'; echo '
'. rand(); ?>

rand Function

2. rand() Function within a Given Range

This function provides the range to the rand() function.

where min is the optional minimum value and denotes the lowest number value and max is the optional maximum value and denotes the highest numerical value.

Also, min has a default value of zero and max has a default value of getrandmax() function value. The return type of the function is always an integer.

'; echo ' 
Range : 1 to 100 ----> '. rand(1,100); echo '
'; echo '
Range 5 to 25 ---->'. rand(5, 25); echo '
'; echo '
Range 10000 to 50000 --->'. rand(10000, 50000); ?>

Random Number Generator in PHP-1.2

3. mt_rand() Function

where min is optional value and denotes the lowest number and max is optional value and denotes the highest number. The default value of min is 0 and the default value of max is the given highest value. The return type is an integer.

'; echo ' 
Range : 1 to 100 ----> '. mt_rand(1,100); echo '
'; echo '
Range 5 to 25 ---->'. mt_rand(5, 25); echo '
'; echo '
Range 9 to 19 --->'. mt_rand(9, 19); ?>

Random Number Generator in PHP-1.3

4. getrandmax() Function

This function returns an integer value

Random Number Generator in PHP-1.4

5. mt_getrandommax() Function

This function returns an integer value.

Random Number Generator in PHP-1.5

6. srand() Function

Where the seed is an optional value, and this function does not return anything.

'. srand(3); echo(rand(1, 5)); echo '
'; echo 'example using srand'; echo '
'. srand(2); echo(rand(1, 5)); ?>

Random Number Generator in PHP-1.6

7. mt_srand() Function

Random Number Generator in PHP-1.7

Generation Integers

In the following example we have used rand(),rand(min,max) and mt_rand().

 Any random number ---->'. rand(); echo ' 
Any random number ---->'. rand(); echo '
'; // random number with range echo 'Following are the different random values within a range '; echo '
Any random number within the range from 0 to 9----> '. rand(0,9); echo '
Any random number within the range from 1000 to 9999 ---->'. rand(1000,9999); echo '
'; // random number with range echo 'Following are the different random values using mt_rand() '; echo '
Using mt_rand()---->'. mt_rand(1000,9999); echo '
Using mt_rand()---->'. mt_rand(100,999); ?>

Generation Integers

Generation Floating-Point Numbers

Floating-point numbers represent a number with decimals that are of the type float. Examples – 10.0, 8.12, 6.23e-5, 2.345, 2.98e+10 and more.

 echo 'Program to display floating point numbers '; echo '
'; echo "
".fun(1, 10, 2); ?>

Floating-point numbers

Conclusion

In this article, we learned about various functions used to generate a random number in PHP. These functions are explained with sample examples. Hope this article is found useful to anyone who wants to learn a random number generator in PHP.

This is a guide to Random Number Generator in PHP. Here we discuss the different functions of random number generator in php along with its examples. You may also look at the following articles to learn more –

25+ Hours of HD Videos
5 Courses
6 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5

92+ Hours of HD Videos
22 Courses
2 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5

83+ Hours of HD Videos
16 Courses
1 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5

PHP Course Bundle — 8 Courses in 1 | 3 Mock Tests
43+ Hours of HD Videos
8 Courses
3 Mock Tests & Quizzes
Verifiable Certificate of Completion
Lifetime Access
4.5

Источник

Оцените статью