/** * Generate, store, and return the index and token * * @return array [string, string] */ protected static function generateToken() { $index = \base64_encode(Resonant\Secure::random_bytes(18)); $token = \base64_encode(Resonant\Secure::random_bytes(32)); $_SESSION[self::SESSION_INDEX][$index] = ['created' => \intval(\date('YmdHis')), 'uri' => isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : $_SERVER['SCRIPT_NAME'], 'token' => $token]; self::recycleTokens(); return [$index, $token]; }
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 === '<br />') { 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); unset($buffer); /* Secure::random_positive_int() */ echo "\n## random_positive_int()\n"; $buffer = \Resonantcore\Lib\Secure::random_positive_int();