class Internal extends AbstractGenerator implements NumberGenerator (View source)

Generates bytes and numbers using PHP's built in CSPRNG.

PHP7 offers a built in function for generating cryptographically secure random bytes. This class simply wraps that method for supported PHP versions.

Methods

string
getBytes(int $count)

Returns securely generated random bytes.

string|false
readBytes(int $count)

Reads bytes from the randomness source.

bool
isSupported()

Tells if the generator is supported by the operating system.

int
getNumber(int $min, int $max)

Returns a securely generated random number between minimum and maximum.

Details

string getBytes(int $count)

Returns securely generated random bytes.

This method will always return the correct number of bytes that have been securely generated. If the bytes cannot be securely generated or if the correct number of bytes cannot be generated, the method MUST throw an exception.

Parameters

int $count Number of bytes to return

Return Value

string Bytes generated by the secure random byte generator

Exceptions

GeneratorException If any error occurs

protected string|false readBytes(int $count)

Reads bytes from the randomness source.

Parameters

int $count number of bytes to read

Return Value

string|false The bytes read from the randomness source or false on error

Exceptions

GeneratorException If error occurs in byte generation

bool isSupported()

Tells if the generator is supported by the operating system.

Return Value

bool True if the generator is supported, false if not

int getNumber(int $min, int $max)

Returns a securely generated random number between minimum and maximum.

Parameters

int $min Minimum number to generate
int $max Maximum number to generate

Return Value

int Random number between the given limits

Exceptions

GeneratorException If any errors occurs in the random number generation