Example #1
0
 /**
  * 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));
 }