[ Index ]

PHP Cross Reference of vtigercrm-6.1.0

title

Body

[close]

/include/Zend/Crypt/ -> Math.php (source)

   1  <?php
   2  /**
   3   * Zend Framework
   4   *
   5   * LICENSE
   6   *
   7   * This source file is subject to the new BSD license that is bundled
   8   * with this package in the file LICENSE.txt.
   9   * It is also available through the world-wide-web at this URL:
  10   * http://framework.zend.com/license/new-bsd
  11   * If you did not receive a copy of the license and are unable to
  12   * obtain it through the world-wide-web, please send an email
  13   * to [email protected] so we can send you a copy immediately.
  14   *
  15   * @category   Zend
  16   * @package    Zend_Crypt
  17   * @subpackage Math
  18   * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  19   * @license    http://framework.zend.com/license/new-bsd     New BSD License
  20   * @version    $Id: Math.php 24593 2012-01-05 20:35:02Z matthew $
  21   */
  22  
  23  /**
  24   * @see Zend_Crypt_Math_BigInteger
  25   */
  26  require_once  'Zend/Crypt/Math/BigInteger.php';
  27  
  28  /**
  29   * @category   Zend
  30   * @package    Zend_Crypt
  31   * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
  32   * @license    http://framework.zend.com/license/new-bsd     New BSD License
  33   */
  34  class Zend_Crypt_Math extends Zend_Crypt_Math_BigInteger
  35  {
  36  
  37      /**
  38       * Generate a pseudorandom number within the given range.
  39       * Will attempt to read from a systems RNG if it exists or else utilises
  40       * a simple random character to maximum length process. Simplicity
  41       * is a factor better left for development...
  42       *
  43       * @param string|int $minimum
  44       * @param string|int $maximum
  45       * @return string
  46       */
  47      public function rand($minimum, $maximum)
  48      {
  49          if (file_exists('/dev/urandom')) {
  50              $frandom = fopen('/dev/urandom', 'r');
  51              if ($frandom !== false) {
  52                  return fread($frandom, strlen($maximum) - 1);
  53              }
  54          }
  55          if (strlen($maximum) < 4) {
  56              return mt_rand($minimum, $maximum - 1);
  57          }
  58          $rand = '';
  59          $i2 = strlen($maximum) - 1;
  60          for ($i = 1;$i < $i2;$i++) {
  61              $rand .= mt_rand(0,9);
  62          }
  63          $rand .= mt_rand(0,9);
  64          return $rand;
  65      }
  66  
  67      /**
  68       * Get the big endian two's complement of a given big integer in
  69       * binary notation
  70       *
  71       * @param string $long
  72       * @return string
  73       */
  74      public function btwoc($long) {
  75          if (ord($long[0]) > 127) {
  76              return "\x00" . $long;
  77          }
  78          return $long;
  79      }
  80  
  81      /**
  82       * Translate a binary form into a big integer string
  83       *
  84       * @param string $binary
  85       * @return string
  86       */
  87      public function fromBinary($binary) {
  88          return $this->_math->binaryToInteger($binary);
  89      }
  90  
  91      /**
  92       * Translate a big integer string into a binary form
  93       *
  94       * @param string $integer
  95       * @return string
  96       */
  97      public function toBinary($integer)
  98      {
  99          return $this->_math->integerToBinary($integer);
 100      }
 101  
 102  }


Generated: Fri Nov 28 20:08:37 2014 Cross-referenced by PHPXref 0.7.1