note 116348 added to function.base64-encode
| From: | sadhooklay | Date: | Tue, 16 Dec 2014 12:26:46 +0000 |
| Subject: | note 116348 added to function.base64-encode | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-201206@lists.php.net to get a copy of this message | ||
<?php
/**
* Generates a random URL-safe base64 string.
*
* See RFC 3548 for the definition of URL-safe base64.
* If $n is not specified, Secure::RANDOM_LENGTH is assumed. It may be larger in future.
*
* @param int $n Specifies the length of the random string
* @param bool $padding
* @return string The result may contain A-Z, a-z, 0-9, "-" and "_".
"=" is also used if $padding is true.
*/
public static function newToken($n = null, $padding = false)
{
// Generate a new unique token
if (!function_exists('openssl_random_pseudo_bytes')) {
// Generate a random pseudo bytes token if openssl_random_pseudo_bytes is available
// This is more secure than uniqid, because uniqid relies on microtime, which is
predictable
$s = pack('a*', openssl_random_pseudo_bytes($n ?: static::RANDOM_LENGTH));
$s = str_replace(["\n", "\r", "\n\r"], '', $s);
} else {
// Otherwise, fall back to a hashed uniqid
$s = substr(hash('sha256', uniqid(null, true)), 0, $n ?:
static::RANDOM_LENGTH);
}
return $padding ? strtr(base64_encode($s), '+/', '-_') :
rtrim(strtr(base64_encode($s), '+/', '-_'), '=');
}
?>
----
Server IP: 72.52.91.14
Probable Submitter: 91.90.18.78
----
Manual Page -- http://php.net/manual/en/function.base64-encode.php
Edit -- https://master.php.net/note/edit/116348
Del: integrated -- https://master.php.net/note/delete/116348/integrated
Del: useless -- https://master.php.net/note/delete/116348/useless
Del: bad code -- https://master.php.net/note/delete/116348/bad+code
Del: spam -- https://master.php.net/note/delete/116348/spam
Del: non-english -- https://master.php.net/note/delete/116348/non-english
Del: in docs -- https://master.php.net/note/delete/116348/in+docs
Del: other reasons-- https://master.php.net/note/delete/116348
Reject -- https://master.php.net/note/reject/116348
Search -- https://master.php.net/manage/user-notes.php