public function computeUnixPassword($plain_password) { $number_generator = new RandomNumberGenerator(self::SALT_SIZE); $salt = $number_generator->getNumber(); // We use a salted MD5 to create the Unix Password return crypt($plain_password, '$1$' . $salt . '$'); }
/** * @return Rest_Token */ public function generateTokenForUser(PFUser $user) { $number_generator = new RandomNumberGenerator(); $token = $number_generator->getNumber(); $this->token_dao->addTokenForUserId($user->getId(), $token, $_SERVER['REQUEST_TIME']); return new Rest_Token($user->getId(), $token); }
public function itGeneratesTokenOfTheAskedSize() { $number_generator_8_bits = new RandomNumberGenerator(1); $this->assertEqual(2, strlen($number_generator_8_bits->getNumber())); $number_generator_64_bits = new RandomNumberGenerator(8); $this->assertEqual(16, strlen($number_generator_64_bits->getNumber())); $number_generator_128_bits = new RandomNumberGenerator(); $this->assertEqual(32, strlen($number_generator_128_bits->getNumber())); }
public function computeUnixPassword($plain_password) { $number_generator = new RandomNumberGenerator(self::SALT_SIZE); $salt = $number_generator->getNumber(); // We use SHA-512 with 5000 rounds to create the Unix Password // SHA-512 is more widely available than BCrypt in GLibc OS library // Only 5000 rounds are used (which is the default value) to keep reasonable performance return crypt($plain_password, '$6$rounds=5000$' . $salt . '$'); }
/** * @return string */ public function getConfirmationCode() { $confirmation_code = null; while ($confirmation_code === null) { $possible_confirmation_code = $this->random_generator->getNumber(); if ($this->user_manager->getUserByConfirmHash($possible_confirmation_code) === null) { $confirmation_code = $possible_confirmation_code; } } return $confirmation_code; }
/** * Sorter test method. * * @param object ISorter $sorter The sorter to test. * @param integer $n The length of array to test. * @param integer $seed A seed for the random number generator. * @param integer $m If given, data values are restricted to [0,m-1]. * (Optional). */ public static function test(ISorter $sorter, $n, $seed, $m = 0) { //printf("AbstractSorter test program.\n"); RandomNumberGenerator::setSeed($seed); $data = new BasicArray($n); for ($i = 0; $i < $n; ++$i) { $datum = intval(RandomNumberGenerator::next() * Limits::MAXINT); if ($m != 0) { $datum = $datum % $m; } $data[$i] = $datum; } $timer = new Timer(); $timer->start(); $sorter->sort($data); $timer->stop(); $datum = sprintf("%s %d %d %f", $sorter->getClass()->getName(), $n, $seed, $timer->getElapsedTime()); fprintf(STDOUT, "%s\n", $datum); fprintf(STDERR, "%s\n", $datum); for ($i = 1; $i < $n; ++$i) { if ($data[$i] < $data[$i - 1]) { printf("FAILED\n"); break; } } }
/** * @return string the new session_hash */ function createSession($user_id, $time) { // generate a token from a PRNG // continue until unique token is generated (SHOULD only be once) $number_generator = new RandomNumberGenerator(); do { $token = $number_generator->getNumber(); $sql = "SELECT 1\n FROM session\n WHERE session_hash = " . $this->da->quoteSmart($token); $dar = $this->retrieve($sql); } while ($dar && $dar->rowCount() == 1); $sql = sprintf("INSERT INTO session (session_hash, ip_addr, time,user_id) VALUES (%s, %s, %d, %d)", $this->da->quoteSmart($token), $this->da->quoteSmart($_SERVER['REMOTE_ADDR']), $time, $user_id); if ($this->update($sql)) { $this->storeLoginSuccess($user_id, $time); } else { $token = false; } return $token; }
<?php // // Copyright 2015 (c) Enalean // SourceForge: Breaking Down the Barriers to Open Source Development // Copyright 1999-2000 (c) The SourceForge Crew // http://sourceforge.net // // require_once 'pre.php'; $em =& EventManager::instance(); $em->processEvent('before_lostpw-confirm', array()); $number_generator = new RandomNumberGenerator(); $confirm_hash = $number_generator->getNumber(); $request =& HTTPRequest::instance(); $res_user = db_query("SELECT * FROM user WHERE user_name='" . db_es($request->get('form_loginname')) . "'"); if (db_numrows($res_user) < 1) { exit_error("Invalid User", "That user does not exist."); } $row_user = db_fetch_array($res_user); db_query("UPDATE user SET confirm_hash='" . $confirm_hash . "' WHERE user_id=" . $row_user['user_id']); list($host, $port) = explode(':', $GLOBALS['sys_default_domain']); $message = stripcslashes($Language->getText('account_lostpw-confirm', 'mail_body', array($GLOBALS['sys_name'], get_server_url() . "/account/lostlogin.php?confirm_hash=" . $confirm_hash))); $mail = new Mail(); $mail->setTo($row_user['email'], true); $mail->setSubject($Language->getText('account_lostpw-confirm', 'mail_subject', array($GLOBALS['sys_name']))); $mail->setBody($message); $mail->setFrom($GLOBALS['sys_noreply']); $mail_is_sent = $mail->send(); if (!$mail_is_sent) { $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('global', 'mail_failed', array($GLOBALS['sys_email_admin'])), CODENDI_PURIFIER_FULL);
/** * */ public function next() { return RandomNumberGenerator::next(); }
/** * Main program. * * @param array $args Command-line arguments. * @return integer Zero on success; non-zero on failure. */ public static function main($args) { printf("RandomNumberGenerator main program.\n"); $status = 0; RandomNumberGenerator::setSeed(1); for ($i = 0; $i < 10; ++$i) { printf("%.15f\n", RandomNumberGenerator::next()); } return $status; }
/** * Computes the value of pi. * Uses a monte-carlo algorithm. * * @param integer $trials The number of trials to be done. * @return float The value of pi. */ public static function computePi($trials) { $hits = 0; for ($i = 0; $i < $trials; ++$i) { $x = RandomNumberGenerator::next(); $y = RandomNumberGenerator::next(); if ($x * $x + $y * $y < 1.0) { ++$hits; } } return 4.0 * $hits / $trials; }
/** * Returns the next random number. * * @return float The next random number. */ public function next() { return -$this->mu * log(RandomNumberGenerator::next()); }
/** * Returns the next random sample. * * @return float The next sample. */ public function next() { return $this->u + ($this->v - $this->u) * RandomNumberGenerator::next(); }
function getConfirmHash() { $random = new RandomNumberGenerator(); $confirm_hash = $random->getNumber(); $user_manager = UserManager::instance(); $check_valid = false; while (!$check_valid) { $confirm_hash = $random->getNumber(); $check_valid = $user_manager->getUserByConfirmHash($confirm_hash) === null; } return $confirm_hash; }
private function generateRandomToken() { return $this->random_number_generator->getNumber(); }