Recovering Drupal administrator password from UI

There are many methods to recover admin password described here https://www.drupal.org/node/44164 but this method gives you a admin panel to recover admin username and password.

Please copy and paste the below code in a file and name it whatever you like or download the attachment in this post, remove .txt extension and drop it in root of your website[in same place where you find robots.txt]. In my case i named it as "generate_drupal_admin_pwd.php".

and then access your website like: http://YOUR_WEBSITE_NAME/generate_drupal_admin_pwd.php

Warning: Putting .php files in root directory have many security concerns, its recommended after changing password you should delete the file.

<html>
<head>
<title>Recover Password</title>

<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.11.3.min.js"></script>
<script type="text/javascript">

function checkPasswordMatch() {
    var password = $("#txtNewPassword").val();
    var confirmPassword = $("#txtConfirmPassword").val();
    if(password != '' && confirmPassword != '') {
        if (password != confirmPassword)
                $("#divCheckPasswordMatch").html("<div class='pass_dont_match'>Passwords do not match!</div>");
        else
                $("#divCheckPasswordMatch").html("<div class='pass_match'>Passwords match.</div>");
    }
}

$(document).ready(function () {
   $("#txtConfirmPassword").focusout(checkPasswordMatch);
});

</script>
<style>
html { height: 100% }
::-moz-selection { background: #fe57a1; color: #fff; text-shadow: none; }
::selection { background: #fe57a1; color: #fff; text-shadow: none; }
body { background-image: radial-gradient( cover, rgba(92,100,111,1) 0%,rgba(31,35,40,1) 100%), url('http://i.minus.com/io97fW9I0NqJq.png') }
.login {
  background: #eceeee;
  border: 1px solid #42464b;
  border-radius: 6px;
  height: 330px;
  margin: 20px auto 0;
  width: 298px;
  margin-top: 50px;
}
.login h1 {
  background-image: linear-gradient(top, #f1f3f3, #d4dae0);
  border-bottom: 1px solid #a6abaf;
  border-radius: 6px 6px 0 0;
  box-sizing: border-box;
  color: #727678;
  display: block;
  height: 43px;
  font: 600 14px/1 'Open Sans', sans-serif;
  padding-top: 14px;
  margin: 0;
  text-align: center;
  text-shadow: 0 -1px 0 rgba(0,0,0,0.2), 0 1px 0 #fff;
}
input[type="password"], input[type="text"] {
  background: url('http://i.minus.com/ibhqW9Buanohx2.png') center left no-repeat, linear-gradient(top, #d6d7d7, #dee0e0);
  border: 1px solid #a1a3a3;
  border-radius: 4px;
  box-shadow: 0 1px #fff;
  box-sizing: border-box;
  color: #696969;
  height: 39px;
  margin: 9px 0 9px 29px;
  padding-left: 37px;
  transition: box-shadow 0.3s;
  width: 240px;
}
.admin_username{
    padding-left: 33px;
}

form{
  margin-top: 53px;
}
input[type="password"]:focus, input[type="text"]:focus {
  box-shadow: 0 0 4px 1px rgba(55, 166, 155, 0.3);
  outline: 0;
}
.show-password {
  display: block;
  height: 16px;
  margin: 26px 0 0 28px;
  width: 87px;
}
input[type="checkbox"] {
  cursor: pointer;
  height: 16px;
  opacity: 0;
  position: relative;
  width: 64px;
}
input[type="checkbox"]:checked {
  left: 29px;
  width: 58px;
}
.toggle {
  background: url(http://i.minus.com/ibitS19pe8PVX6.png) no-repeat;
  display: block;
  height: 16px;
  margin-top: -20px;
  width: 87px;
  z-index: -1;
}
input[type="checkbox"]:checked + .toggle { background-position: 0 -16px }
.forgot {
  color: #7f7f7f;
  display: inline-block;
  float: right;
  font: 12px/1 sans-serif;
  left: -19px;
  position: relative;
  text-decoration: none;
  top: 5px;
  transition: color .4s;
}
.forgot:hover { color: #3b3b3b }
input[type="submit"] {
  width:240px;
  height:35px;
  display:block;
  font-family:Arial, "Helvetica", sans-serif;
  font-size:16px;
  font-weight:bold;
  color:#fff;
  text-decoration:none;
  text-transform:uppercase;
  text-align:center;
  text-shadow:1px 1px 0px #37a69b;
  padding-top:6px;
  margin: 29px 0 0 29px;
  position:relative;
  cursor:pointer;
  border: none;
  background-color: #37a69b;
  background-image: linear-gradient(top,#3db0a6,#3111);
  border-top-left-radius: 5px;
  border-top-right-radius: 5px;
  border-bottom-right-radius: 5px;
  border-bottom-left-radius:5px;
  box-shadow: inset 0px 1px 0px #2ab7ec, 0px 5px 0px 0px #497a78, 0px 10px 5px #999;
}

.shadow {
  background: #000;
  border-radius: 12px 12px 4px 4px;
  box-shadow: 0 0 20px 10px #000;
  height: 12px;
  margin: 30px auto;
  opacity: 0.2;
  width: 270px;
}

input[type="submit"]:active {
  top:3px;
  box-shadow: inset 0px 1px 0px #2ab7ec, 0px 2px 0px 0px #31524d, 0px 5px 3px #999;
}

.pass_match {
  padding-left: 96px;
  padding-top: 8px;
  color: darkgreen;
}

.pass_dont_match {
  padding-left: 65px;
  padding-top: 8px;
  color: red;
}

.pass_changed {
  margin-left: 777px;
  color: green;
}
.mainloginarea {
margin-top: 250px;
}
</style>
   </HEAD>
   <BODY>

<?php

 define('DRUPAL_ROOT', getcwd()); //the most important line
 
require_once './includes/bootstrap.inc';
 
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
 require_once
DRUPAL_ROOT . '/includes/password.inc';
$admin_name = db_query("SELECT name from {users} WHERE uid = :uid", array(":uid" => 1))->fetchField();

if((!empty($_POST['txtNewPassword'])) && (!empty($_POST['txtConfirmPassword']))) {
        if(
$_POST['txtNewPassword'] === $_POST['txtConfirmPassword']) {
           
               
$newpwd = $_POST['txtNewPassword'];
                global
$base_url;
               
$hashed_pass user_hash_password($newpwd);
               
$updated = db_update('users') // Table name no longer needs {}
               
->fields(array(
                       
'pass' => $hashed_pass,
                ))
                ->
condition('uid', 1, '=')
                ->
execute();
                               
               
watchdog('drupal_admin_pass_change',
                        
'Admin password changed',
                        
WATCHDOG_NOTICE);                               
                               
}

}
?>
<div class = "mainloginarea">
<h1 align = "center">Drupal Admin Password Changer</h1>
      <div class="login">
           <form method = "POST" action="<?php echo $_SERVER['PHP_SELF']; ?>">
        <div class = "admin_username"> Admin Username:<b><?php echo $admin_name ?></b></div><br />
        <input placeholder= "Enter Password" name="txtNewPassword" type="password" id="txtNewPassword">
        <input placeholder = "Re-Enter Password" name="txtConfirmPassword"  type="password" id="txtConfirmPassword">

                <div class="registrationFormAlert" id="divCheckPasswordMatch">
        </div>
        <input type="submit" value="Submit">
        </form>
</div>
<div class="shadow"></div>
</div>
<?php if($updated) print "<div class=pass_changed>Thank You! Password Changed. <a href= $base_url/user>Click Here<a/> to login</div>"; ?>

Drupal admin password changer panel