/** * Large random number generator * * @param integer $powerOfTwo * @return string */ public function random($powerOfTwo) { $prefix = 'P'; if (extension_loaded('bcmath')) { OauthHelper::log($prefix . OauthHelper::bcrandom(1, bcpow(2, $powerOfTwo))); return $prefix . OauthHelper::bcrandom(1, bcpow(2, $powerOfTwo)); } if (extension_loaded('gmp')) { $limbOp = round($powerOfTwo / 32); OauthHelper::log($prefix . gmp_strval(gmp_random($limbOp))); return $prefix . gmp_strval(gmp_random($limbOp)); } return $prefix . rand(0, pow(2, $powerOfTwo)); }