Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- trocarSenha.php
- <?
- require_once 'AuthMe.class.php';
- $am = new AuthMe("sql-7.verygames.net", "db455348", "8wj9brh6x", "db455348", "authme");
- $username = $_POST['username'];
- $newpass = $_POST['password'];
- $change = $am->changePassword($username, $newpass);
- if($change){
- echo
- '
- <script>alert("Senha alterado com sucesso!"); history.back();</script>
- ';
- }else{
- echo
- '
- <script>alert("Erro ao trocar senha!"); history.back();</script>
- ';
- }
- ?>
- AuthMe.class.php
- <?php
- class AuthMe {
- const MD5 = "md5";
- private $conection;
- private $authme_table;
- private $algorithm;
- public function __construct($db_host, $db_user, $db_pass, $db_name, $authme_table) {
- $this->authme_table = $authme_table;
- $this->algorithm = MD5;
- @$this->conection = mysqli_connect($db_host, $db_user, $db_pass) or die(mysqli_connect_error());
- @mysqli_select_db($this->conection, $db_name) or die(mysqli_error($this->conection));
- }
- public function __destruct() {
- if (is_object($this->conection)) {
- $this->conection->close();
- unset($this->algorithm);
- unset($this->authme_table);
- }
- }
- public function changePassword($username, $newpass) {
- if (!self::isUsernameRegistered($username)) {
- return false;
- }
- $username = addslashes($username);
- $newpass = addslashes(self::AMHash($newpass));
- return mysqli_query($this->conection, "UPDATE {$this->authme_table} SET password='$newpass' WHERE username='$username'");
- }
- public function isIpRegistered($ip) {
- $ip = addslashes($ip);
- $query = mysqli_query($this->conection, "SELECT ip FROM {$this->authme_table} WHERE ip='{$ip}'");
- return mysqli_num_rows($query) >= 1;
- }
- public function isUsernameRegistered($user) {
- $user = addslashes($user);
- $query = mysqli_query($this->conection, "SELECT username FROM {$this->authme_table} WHERE username='{$user}'");
- return mysqli_num_rows($query) >= 1;
- }
- private function compare($pass, $hash_pass) {
- switch ($this->algorithm) {
- case "sha256":
- $shainfo = explode("$", $hash_pass);
- $pass = hash("sha256", $pass).$shainfo[2];
- return strcasecmp($shainfo[3], hash('sha256', $pass)) == 0;
- case "sha1":
- return strcasecmp($hash_pass, hash('sha1', $pass)) == 0;
- case "md5":
- return strcasecmp($hash_pass, hash('md5', $pass)) == 0;
- case "whirlpool":
- return strcasecmp($hash_pass, hash('whirlpool', $pass)) == 0;
- case "md5vb":
- $shainfo = explode("$", $hash_pass);
- $pass = hash("md5", $pass).$shainfo[2];
- return strcasecmp($shainfo[3], hash('md5', $pass)) == 0;
- case "plaintext":
- return $hash_pass == $pass;
- default:
- return false;
- }
- }
- private function AMHash($pass) {
- switch ($this->algorithm) {
- case "sha256":
- $salt = self::createSalt();
- return "\$SHA\$".$salt."\$".hash("sha256", hash('sha256', $pass).$salt);
- case "sha1":
- return hash("sha1", $pass);
- case "md5":
- return hash("sha1", $pass);
- case "whirlpool":
- return hash("sha1", $pass);
- case "md5vb":
- $salt = self::createSalt();
- return "\$MD5vb\$".$salt."\$".hash("md5", hash('md5', $pass).$salt);
- case "plaintext":
- return $pass;
- default:
- return false;
- }
- }
- private function createSalt() {
- $salt = "";
- for ($i = 0; $i < 20; $i++) {
- $salt .= rand(0, 9);
- }
- return substr(hash("sha1", $salt), 0, 16);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement