PHP 5.x polyfill for random_bytes() and random_int() created and maintained
by Paragon Initiative Enterprises.
Although this library should function in earlier versions of PHP, we will only consider issues relevant to supported PHP versions. If you are using an unsupported version of PHP, please upgrade as soon as possible.
Although this library has been examined by some security experts in the PHP community, there will always be a chance that we overlooked something. Please ask your favorite trusted hackers to hammer it for implementation errors and bugs before even thinking about deploying it in production.
For the background of this library, please refer to our blog post on Generating Random Integers and Strings in PHP.
If PHP cannot safely generate random data, this library will throw an Exception.
It will never fall back to insecure random data. If this keeps happening, upgrade
to a newer version of PHP immediately.
This library exposes the CSPRNG functions added in PHP 7 for use in PHP 5 projects. Their behavior should be identical.
$string = random_bytes(32);
var_dump(bin2hex($string));
// string(64) "5787c41ae124b3b9363b7825104f8bc8cf27c4c3036573e5f0d4a91ad2eeac6f"$int = random_int(0,255);
var_dump($int);
// int(47)This project would not be anywhere near as excellent as it is today if it weren't for the contributions of the following individuals:
- @asgrim (James Titcumb)
- @CodesInChaos (Christian Winnerlein)
- @chriscct7 (Chris Christoff)
- @dd32 (Dion Hulse)
- @ircmaxell (Anthony Ferrara)
- @jedisct1 (Frank Denis)
- @juliangut (Julián Gutiérrez)
- @kelunik (Niklas Keller)
- @lt (Leigh)
- @MasonM (Mason Malone)
- @narfbg (Andrey Andreev)
- @oittaa
- @redragonx (Stephen Chavez)
- @rchouinard (Ryan Chouinard)
- @SammyK (Sammy Kaye Powers)
- @scottchiefbaker (Scott Baker)
- @skyosev (Stoyan Kyosev)
- @stof (Christophe Coevoet)
- @teohhanhui (Teoh Han Hui)
- @tsyr2ko
- @trowski (Aaron Piotrowski)
- @twistor (Chris Lepannen)
- @voku (Lars Moelleken)
