Advertisement
Guest User

Untitled

a guest
Oct 21st, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.85 KB | None | 0 0
  1. <?php
  2.  
  3.     // ---- CONFIGURATION -------------------------------
  4.    
  5.     define('DB_HOST', '********');
  6.     define('DB_USERNAME', '*******');
  7.     define('DB_PASSWORD', '********');
  8.     define('DB_NAME', '********');
  9.     define('DB_TABLE', 'authme');
  10.    
  11.     // ---- PASSWORD COMPARISON FUNCTION ----------------
  12.    
  13.     function passwordCompare($rawHash, $password)
  14.     {
  15.         $parts = explode('$', $rawHash);
  16.        
  17.         if (count($parts) === 4)
  18.         {
  19.             $hash = hash('sha256', $password);
  20.             $hash = hash('sha256', $hash . $parts[2]);
  21.            
  22.             return $hash === $parts[3];
  23.         }
  24.        
  25.         return FALSE;
  26.     }
  27.    
  28.     // --------------------------------------------------
  29.    
  30.     header('Content-Type: text/plain');
  31.  
  32.     $username = isset($_POST['username']) ? $_POST['username'] : NULL;
  33.     $password = isset($_POST['password']) ? $_POST['password'] : NULL;
  34.    
  35.     if (empty($username) || empty($password))
  36.     {
  37.         die('false:EMPTY_REQUEST');
  38.     }
  39.    
  40.     try
  41.     {
  42.         $database = new PDO('mysql:dbname=' . DB_NAME . ';host=' . DB_HOST, DB_USERNAME, DB_PASSWORD);
  43.     }
  44.     catch (PDOException $e)
  45.     {
  46.         die('false:ERROR_DATABASE_CONNECT');
  47.     }
  48.  
  49.     $statement = $database->prepare('SELECT password FROM ' . DB_TABLE . ' WHERE username = :username');
  50.     $state = $statement->execute(array('username' => $username));
  51.  
  52.     if ($state === FALSE)
  53.     {
  54.         die('false:ERROR_DATABASE_QUERY');
  55.     }
  56.  
  57.     $result = $statement->fetchAll(PDO::FETCH_ASSOC);
  58.  
  59.     if ($result === FALSE)
  60.     {
  61.         die('false:ERROR_DATABASE_FETCH');
  62.     }
  63.  
  64.     if (count($result) === 0)
  65.     {
  66.         die('false');
  67.     }
  68.    
  69.     if (passwordCompare($result[0]['password'], $password) === TRUE)
  70.     {
  71.         die('true');
  72.     }
  73.    
  74.     die('false');
  75. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement