You could just programmatically add a new user to the site.
This is a snippet from a utility I use to gain access to WordPress sites when I don’t have the login info. Just upload it to a file in your wordpress root and navigate to it:
require_once('wp-blog-header.php');
require_once('wp-includes/registration.php');
$user_id = wp_create_user( 'newusername', 'newpassword' );
if ( is_int($user_id) )
{
$wp_user_object = new WP_User($user_id);
$wp_user_object->set_role('administrator');
echo 'Successfully created new admin user. Now delete this file!';
}
else {
echo 'Error with wp_insert_user. No users were created.';
}
Make sure you delete the file when you’re done.
If you still can’t login with the new user, try deactivating all of your plugins (you can just change the directory names since you can’t access them in the backend).
You may also want to ensure that none of your core files have been modified. Completely delete the wp-admin
and wp-includes
directories and grab fresh ones from a clean copy of WordPress.