Advertisement
Guest User

Erro

a guest
Feb 13th, 2016
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 4.03 KB | None | 0 0
  1. trocarSenha.php
  2. <?
  3.   require_once 'AuthMe.class.php';
  4.   $am = new AuthMe("sql-7.verygames.net", "db455348", "8wj9brh6x", "db455348", "authme");
  5.  
  6.   $username = $_POST['username'];
  7.   $newpass  = $_POST['password'];
  8.  
  9.   $change = $am->changePassword($username, $newpass);
  10.  
  11.   if($change){
  12.     echo
  13.     '
  14.    <script>alert("Senha alterado com sucesso!"); history.back();</script>
  15.    ';
  16.   }else{
  17.     echo
  18.     '
  19.    <script>alert("Erro ao trocar senha!"); history.back();</script>
  20.    ';
  21.   }
  22. ?>
  23.  
  24. AuthMe.class.php
  25. <?php
  26.  
  27. class AuthMe {
  28.  
  29.     const MD5 = "md5";
  30.    
  31.     private $conection;
  32.  
  33.     private $authme_table;
  34.  
  35.     private $algorithm;
  36.  
  37.     public function __construct($db_host, $db_user, $db_pass, $db_name, $authme_table) {
  38.         $this->authme_table = $authme_table;
  39.         $this->algorithm = MD5;
  40.         @$this->conection = mysqli_connect($db_host, $db_user, $db_pass) or die(mysqli_connect_error());
  41.         @mysqli_select_db($this->conection, $db_name) or die(mysqli_error($this->conection));
  42.     }
  43.  
  44.     public function __destruct() {
  45.         if (is_object($this->conection)) {
  46.             $this->conection->close();
  47.             unset($this->algorithm);
  48.             unset($this->authme_table);
  49.         }
  50.     }
  51.  
  52.     public function changePassword($username, $newpass) {
  53.         if (!self::isUsernameRegistered($username)) {
  54.             return false;
  55.         }
  56.  
  57.         $username = addslashes($username);
  58.         $newpass = addslashes(self::AMHash($newpass));
  59.  
  60.         return mysqli_query($this->conection, "UPDATE {$this->authme_table} SET password='$newpass' WHERE username='$username'");
  61.     }
  62.  
  63.     public function isIpRegistered($ip) {
  64.         $ip = addslashes($ip);
  65.         $query = mysqli_query($this->conection, "SELECT ip FROM {$this->authme_table} WHERE ip='{$ip}'");
  66.         return mysqli_num_rows($query) >= 1;
  67.     }
  68.    
  69.  
  70.     public function isUsernameRegistered($user) {
  71.         $user = addslashes($user);
  72.         $query = mysqli_query($this->conection, "SELECT username FROM {$this->authme_table} WHERE username='{$user}'");
  73.         return mysqli_num_rows($query) >= 1;
  74.     }
  75.  
  76.     private function compare($pass, $hash_pass) {
  77.         switch ($this->algorithm) {
  78.  
  79.             case "sha256":
  80.                 $shainfo = explode("$", $hash_pass);
  81.                 $pass = hash("sha256", $pass).$shainfo[2];
  82.                 return strcasecmp($shainfo[3], hash('sha256', $pass)) == 0;
  83.  
  84.             case "sha1":
  85.                 return strcasecmp($hash_pass, hash('sha1', $pass)) == 0;
  86.  
  87.             case "md5":
  88.                 return strcasecmp($hash_pass, hash('md5', $pass)) == 0;
  89.  
  90.             case "whirlpool":
  91.                 return strcasecmp($hash_pass, hash('whirlpool', $pass)) == 0;
  92.  
  93.             case "md5vb":
  94.                 $shainfo = explode("$", $hash_pass);
  95.                 $pass = hash("md5", $pass).$shainfo[2];
  96.                 return strcasecmp($shainfo[3], hash('md5', $pass)) == 0;
  97.  
  98.             case "plaintext":
  99.                 return $hash_pass == $pass;
  100.  
  101.             default:
  102.                 return false;
  103.         }
  104.     }
  105.  
  106.     private function AMHash($pass) {
  107.         switch ($this->algorithm) {
  108.  
  109.             case "sha256":
  110.                 $salt = self::createSalt();
  111.                 return "\$SHA\$".$salt."\$".hash("sha256", hash('sha256', $pass).$salt);
  112.  
  113.             case "sha1":
  114.                 return hash("sha1", $pass);
  115.  
  116.             case "md5":
  117.                 return hash("sha1", $pass);
  118.  
  119.             case "whirlpool":
  120.                 return hash("sha1", $pass);
  121.  
  122.             case "md5vb":
  123.                 $salt = self::createSalt();
  124.                 return "\$MD5vb\$".$salt."\$".hash("md5", hash('md5', $pass).$salt);
  125.  
  126.             case "plaintext":
  127.                 return $pass;
  128.  
  129.             default:
  130.                 return false;
  131.         }
  132.     }
  133.  
  134.     private function createSalt() {
  135.         $salt = "";
  136.         for ($i = 0; $i < 20; $i++) {
  137.             $salt .= rand(0, 9);
  138.         }
  139.         return substr(hash("sha1", $salt), 0, 16);
  140.     }
  141. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement