X-Git-Url: https://git.mxchange.org/?p=core.git;a=blobdiff_plain;f=inc%2Fclasses%2Fmain%2Frng%2Fclass_RandomNumberGenerator.php;h=27a3672817ce027c31f3cc2203e9b1539805c7a0;hp=93ba3988ed0ae28fa27f7aca7beec7b64a592724;hb=5e067e1139ac4c4ec92642b8700b449d756e01ec;hpb=c6d73b0e3246efc824cb98338d4be7ee5bc9f308 diff --git a/inc/classes/main/rng/class_RandomNumberGenerator.php b/inc/classes/main/rng/class_RandomNumberGenerator.php index 93ba3988..27a36728 100644 --- a/inc/classes/main/rng/class_RandomNumberGenerator.php +++ b/inc/classes/main/rng/class_RandomNumberGenerator.php @@ -4,7 +4,7 @@ * * @author Roland Haeder * @version 0.0.0 - * @copyright Copyright (c) 2007, 2008 Roland Haeder, this is free software + * @copyright Copyright (c) 2007, 2008 Roland Haeder, 2009 Core Developer Team * @license GNU GPL 3.0 or any newer version * @link http://www.ship-simu.org * @@ -35,12 +35,12 @@ class RandomNumberGenerator extends BaseFrameworkSystem { /** * Extra salt for secured hashing */ - private $extraSalt = ""; + private $extraSalt = ''; /** * Fixed salt for secured hashing */ - private $fixedSalt = ""; + private $fixedSalt = ''; /** * Maximum length for random string @@ -88,7 +88,7 @@ class RandomNumberGenerator extends BaseFrameworkSystem { */ protected function initRng ($extraInstance) { // Get the prime number from config - $this->prime = $this->getConfigInstance()->readConfig('math_prime'); + $this->prime = $this->getConfigInstance()->getConfigEntry('math_prime'); // Calculate the extra number which is always the same unless you give // a better prime number @@ -98,28 +98,28 @@ class RandomNumberGenerator extends BaseFrameworkSystem { mt_srand((double) sqrt(microtime() * 100000000 * $this->extraNumber)); // Set the server IP to cluster - $serverIp = "cluster"; + $serverIp = 'cluster'; // Do we have a single server? - if ($this->getConfigInstance()->readConfig('is_single_server') === "Y") { + if ($this->getConfigInstance()->getConfigEntry('is_single_server') == 'Y') { // Then use that IP for extra security - $serverIp = getenv('SERVER_ADDR'); + $serverIp = $this->getConfigInstance()->getServerAddress(); } // END - if // Yet-another fixed salt. This is not dependend on server software or date if ($extraInstance instanceof FrameworkInterface) { // With extra instance information - $this->fixedSalt = sha1($serverIp . ":" . $extraInstance->__toString() . ":" . serialize($this->getDatabaseInstance()->getConnectionData())); + $this->fixedSalt = sha1($serverIp . ':' . $extraInstance->__toString() . ':' . serialize($this->getDatabaseInstance()->getConnectionData())); } else { // Without extra information - $this->fixedSalt = sha1($serverIp . ":" . serialize($this->getDatabaseInstance()->getConnectionData())); + $this->fixedSalt = sha1($serverIp . ':' . serialize($this->getDatabaseInstance()->getConnectionData())); } // One-way data we need for "extra-salting" the random number - $this->extraSalt = sha1($this->fixedSalt . ":" . getenv('SERVER_SOFTWARE') . ":" . $this->getConfigInstance()->readConfig('date_key') . $this->getConfigInstance()->readConfig('base_url')); + $this->extraSalt = sha1($this->fixedSalt . ':' . getenv('SERVER_SOFTWARE') . ':' . $this->getConfigInstance()->getConfigEntry('date_key') . $this->getConfigInstance()->getConfigEntry('base_url')); // Get config entry for max salt length - $this->rndStrLen = $this->getConfigInstance()->readConfig('rnd_str_length'); + $this->rndStrLen = $this->getConfigInstance()->getConfigEntry('rnd_str_length'); } /** @@ -133,7 +133,7 @@ class RandomNumberGenerator extends BaseFrameworkSystem { if ($length < 1) $length = $this->rndStrLen; // Initialize the string - $randomString = ""; + $randomString = ''; // And generate it for ($idx = 0; $idx < $length; $idx++) { @@ -174,6 +174,24 @@ class RandomNumberGenerator extends BaseFrameworkSystem { public final function getFixedSalt () { return $this->fixedSalt; } + + /** + * Generates a key based on if we have extra (default) or fixed salt enabled + * + * @return $key The generated key for encrypion + */ + public function generateKey () { + // Default is extra salt + $key = md5($this->getExtraSalt()); + + // Get key + if ($this->getConfigInstance()->getConfigEntry('crypt_fixed_salt') == 'Y') { + $key = md5($this->getFixedSalt()); + } // END - if + + // Return it + return $key; + } } // [EOF]