Beispiel #1
0
 /**
  * Validate a password against the specified salted and hashed password.
  *
  * @param string $password string to salt and hash
  * @param string $goodHash previously salted and hashed string in the format algorithm:iterations:salt:hash
  * @return boolean true if the two passwords match and false otherwise
  * 
  * <code>
  *	$goodHash = Pbkdf2::createHash($password);
  *	$isValid = Pbkdf2::validatePassword($password, $goodHash);
  * </code>
  */
 public static function validatePassword($password, $goodHash)
 {
     $params = explode(":", $goodHash);
     if (count($params) < self::HASH_SECTIONS) {
         return false;
     }
     $pbkdf2 = base64_decode($params[self::HASH_INDEX]);
     return slowEquals($pbkdf2, self::pbkdf2($params[self::HASH_ALGORITHM_INDEX], $password, $params[self::HASH_SALT_INDEX], (int) $params[self::HASH_ITERATION_INDEX], strlen($pbkdf2), true));
 }
function validateHashedPassword($password, $correctHash)
{
    $params = explode(":", $correctHash);
    if (count($params) < HASH_SECTIONS) {
        return false;
    }
    $pbkdf2 = base64_decode($params[HASH_PBKDF2_INDEX]);
    return slowEquals($pbkdf2, pbkdf2($params[HASH_ALGORITHM_INDEX], $password, $params[HASH_SALT_INDEX], (int) $params[HASH_ITERATION_INDEX], strlen($pbkdf2), true));
}
 function login_panel($data)
 {
     $email = $data['email'];
     $query = $this->db->query("SELECT id,email,password,salt,role FROM user WHERE email=? AND (role=1 OR role=2)", array($email));
     if ($query->num_rows() > 0) {
         $user = $query->row();
         $password = hash('sha256', $user->salt . $data['password']);
         $this->load->helper("jacksecure_helper");
         if (slowEquals($user->password, $password)) {
             return array("status" => 1, "user" => $user);
             //Success
         } else {
             return array("status" => -1);
         }
         //correo/*password incorrectos.
     } else {
         return array("status" => -2);
     }
     //Usuario inexistente
     return array("status" => -3);
 }