|Last Updated|| ||Ratings|| ||Unique User Downloads|| ||Download Rankings|
|2020-12-22 (29 days ago) ||Not yet rated by the users||Total: 24 This week: 1||All time: 10,127 This week: 243|
This package can generate 128 bit pseudo-random numbers.
It can take a seed string of data and generates 128 bit random numbers.
The generated numbers may be returned as strings of bytes or integers that can be restricted to be withing a range of numbers given the initial and the end integer values of that range.
Seeded, Deterministic PRNG (based on AES-CTR instead of LCG) (Requires PHP 7 or random_compat)
This is not meant to replace
random_bytes(). Think of this as an improvement
rand(). Do not use this for security purposes.
composer require paragonie/seedspring
// For example
$sharedSeed = str_repeat("\x80", 16);
$rng = new SeedSpring($sharedSeed);
$data = $rng->getBytes(1024);
$int = $rng->getInt(1, 100);
A cryptographically secure pseudorandom number generator, such as
is wonderful for security purposes. However, there are situations where you need
to generate a deterministic, pseudorandom byte stream on two devices from a
shared seed. (e.g. something like Minecraft's world generator).
PHP's native seedable (and insecure) RNGs,
support a 32-bit integer seed, which severely limits the possible outputs. Our
deterministic RNG supports up to 2^128 possible outputs, since it's based on a
128-bit block cipher.
Our implementation uses AES-128-CTR to turn a finite, 128-bit key into an
practically endless stream of random bytes. (It will repeat after 2^132 bytes of
output. You should consider rekeying after 2^66 bytes.)
||Applications that use this package
No pages of applications that use this class were specified.
If you know an application of this package, send a message to the author to add a link here.