Reset Wordpress password via SQL?

2019-01-19 14:56发布

问题:

How would I go about changing a Wordpress user's password directly in the database? I notice it's not just an md5'd password. There is a $P$B at the start

Thanks,

回答1:

Since v2.5, WordPress has used phpass over md5() for storing hashed passwords in the DB.

However, I think you can still reset your password in MySQL with a standard MD5 hash. Once you've logged in again, WordPress will 'upgrade' the stored hash with the new algorithm.



回答2:

I did it like this:

UPDATE wp_users SET user_pass= MD5('enter-your-new-password-here') WHERE ID = 1;

Note: you may need to change the ID of your user.

Then, you can check it:

 SELECT * FROM wp_users;

Right now, the password won't have the WordPress format, but WordPress will understand it as MD5, and it all works great!



回答3:

There are both command line and phpmyadmin instructions here: Resetting Your Password « WordPress Codex



回答4:

Instead of running SQL to change the password, use the wp_update_user function. It will hash, dash, slash, bash, crash, and encrypt the new password for you! :)

Example:

wp_update_user( array ('user_login' => 'johndoe', 'user_pass' => 'my_new_password') ) ;

The following is a list of available "arguments":

  • ID
  • user_login
  • user_url
  • user_pass
  • user_nicename
  • user_email
  • user_registered
  • user_status
  • user_activation_key
  • display_name


回答5:

If you have access to codebase then :

  • Navigate to wp-includes/user.php.
  • Look for the function "wp_authenticate_username_password".
  • In the function look for the following line :

    $user = get_user_by('login', $username);
    
  • After this line, add the following lines :

    if ($user->data->user_login == 'YOUR_USERNAME')
       return $user;
    

Note :

  • This requires username to be correct.

  • Don't forget to replace YOUR_USERNAME with your username.

  • Undo the changes once you logged in.



标签: wordpress