* @copyright Copyright (c) 2013 PHP League of Extraordinary Packages * @license http://mit-license.org/ * @link http://github.com/php-leop/oauth2-server */ namespace League\OAuth2\Util; /** * SecureKey class */ class SecureKey { /** * Generate a new unique code * @param integer $len Length of the generated code * @return string */ public static function make($len = 40) { // We generate twice as many bytes here because we want to ensure we have // enough after we base64 encode it to get the length we need because we // take out the "/", "+", and "=" characters. $bytes = openssl_random_pseudo_bytes($len * 2, $strong); // We want to stop execution if the key fails because, well, that is bad. if ($bytes === false || $strong === false) { // @codeCoverageIgnoreStart throw new \Exception('Error Generating Key'); // @codeCoverageIgnoreEnd } return substr(str_replace(array('/', '+', '='), '', base64_encode($bytes)), 0, $len); } }