/**
  * @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;
 }
 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 . '$');
 }
Пример #3
0
 /**
  * @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 . '$');
 }
Пример #6
0
 /**
  * @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;
 }
Пример #7
0
<?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);
Пример #8
0
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;
}
Пример #9
0
 private function generateRandomToken()
 {
     return $this->random_number_generator->getNumber();
 }