Ejemplo n.º 1
0
 public function testBias()
 {
     $this->markTestSkipped('This test can fail randomly; only enable it when needed.');
     // Populate:
     $buffer = array_fill(0, 10, 0);
     // Perform the experiment:
     for ($i = 0; $i < 5000; ++$i) {
         // Increase a random index by 1
         $j = \Resonantcore\Lib\Secure::random(0, 9);
         ++$buffer[$j];
     }
     var_dump($buffer);
     // Analyze the results:
     for ($i = 0; $i < 10; ++$i) {
         // If any of these are 0, then our RNG is failing us
         $this->assertNotEquals($buffer[$i], 0);
     }
 }
Ejemplo n.º 2
0
<?php

define('BASE', dirname(__DIR__));
require_once BASE . "/autoload.php";
echo "# Demo: \\Resonantcore\\Lib\\Secure\n\n";
/* Secure::random($min, $max) */
echo "\n## random(\$min, \$max)\n";
$charset = array_merge(range('a', 'z'), range('2', '7'));
$buffer = '';
for ($i = 0; $i < 16; ++$i) {
    // Get a random index
    $n = \Resonantcore\Lib\Secure::random(0, 31);
    // Append a random character from $charset to buffer
    $buffer .= $charset[$n];
}
echo $buffer . "\n";
unset($buffer);
/* Secure::random_bytes($num) */
echo "\n## random_bytes(\$num)\n";
echo base64_encode(\Resonantcore\Lib\Secure::random_bytes(32)) . "\n";
/* Secure::noHTML($str) */
echo "\n## noHTML(\$str)\n";
$buffer = \Resonantcore\Lib\Secure::noHTML('<br />');
if ($buffer === '&lt;br /&gt') {
    echo "No HTML succeeded!\n";
}
unset($buffer);
/* Secure::file_valid($file, $jail_dir) */
echo "\n## file_valid(\$file, \$jail_dir)\n";
$buffer = \Resonantcore\Lib\Secure::file_valid($_SERVER['PHP_SELF'], BASE);
var_dump($buffer);