* A standard random number generator
*
* @author Roland Haeder <webmaster@ship-simu.org>
- * @version 0.3.0
+ * @version 0.0.0
* @copyright Copyright(c) 2007, 2008 Roland Haeder, this is free software
* @license GNU GPL 3.0 or any newer version
- * @link http://www.mxchange.org
+ * @link http://www.ship-simu.org
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
private $rndStrLen = 0;
/**
- * Private constructor
+ * Protected constructor
*
* @param $className Name of this class
* @return void
$this->setObjectDescription("Standard random number generator");
// Create unique ID number
- $this->createUniqueID();
+ $this->generateUniqueId();
// Clean up a little
$this->removeNumberFormaters();
* @return void
*/
protected function initRng () {
+ // Seed mt_rand()
+ mt_srand((double) microtime() * 1000000);
+
// Get the prime number from config
$this->prime = $this->getConfigInstance()->readConfig('math_prime');
// a better prime number
$this->extraNumber = ($this->prime * $this->prime / (pi() ^ 2));
+ // Set the server IP to cluster
+ $serverIp = "cluster";
+ // Do we have a single server?
+ if ($this->getConfigInstance()->readConfig('is_single_server') == "Y") {
+ // Then use that IP for extra security
+ $serverIp = getenv('SERVER_ADDR');
+ }
+
// One-way data we need for "extra-salting" the random number
// @TODO Add site for stronger salt!
- $this->extraSalt = sha1(getenv('SERVER_ADDR') . ":" . getenv('SERVER_SOFTWARE') . ":" . $this->getConfigInstance()->readConfig('date_key') . ":" . serialize($this->getDatabaseInstance()->getConnectionData()));
+ $this->extraSalt = sha1($serverIp . ":" . getenv('SERVER_SOFTWARE') . ":" . $this->getConfigInstance()->readConfig('date_key') . ":" . serialize($this->getDatabaseInstance()->getConnectionData()));
// Get config entry for max salt length
$this->rndStrLen = $this->getConfigInstance()->readConfig('rnd_str_length');
// @TODO I had a better random number generator here
return mt_rand($min, $max);
}
+
+ /**
+ * Getter for extra salt
+ *
+ * @return $extraSalt
+ */
+ public final function getExtraSalt () {
+ return $this->extraSalt;
+ }
}
// [EOF]