Explicamos cómo modificar la contraseña de acceso a la consola de administración de WordPress. Útil cuando no sabemos la contraseña del usuario administrador o la hemos perdido. Necesitaremos acceso a la base de datos MySQL/MariaDB de WordPress. Mostramos cómo modificar la contraseña desde phpMyAdmin (vía web), desde MySQL Workbench (cliente oficial de MySQL para equipos Windows/Linux/MACos) y también desde la línea de comandos de MySQL.

Explicamos cómo cambiar la contraseña para cualquier usuario de WordPress, sea administrador o no. Con este método podremos listar todos los usuarios y elegir al que queramos cambiarle la contraseña de forma «manual».

Requisitos para poder cambiar la contraseña de acceso a WordPress

Necesitaremos disponer de un equipo con la base de datos de MySQL o MariaDB donde estará el catálogo con todas las tablas de nuestro sitio web WordPress.

El procedimiento que explicaremos requiere de acceso a las tablas de la base de datos (bien sea MySQL o MariaDB o cualquier otro gestor de base de datos que se haya utilizado). En concreto a la tabla wp_users (wp_ es el prefijo estándar, puede ser otro).

Para el acceso a la base de datos podremos usar cualquier cliente de MySQL/MariaDB o el cliente del gestor sobre el que tengamos WordPress. Para MySQL/MariaDB se puede usar (si se dispone de él) phpMyAdmin o MySQL WorkBench o cualquier otro cliente con acceso a la base de datos, incluso se podría usar la línea de comandos del shell de MySQL.

Por lo tanto necesitaremos los datos de acceso al servidor de la base de datos donde tengamos alojada nuestra web de WordPress o bien, como hemos dicho, acceso mediante phpMyAdmin (muchos hosting lo permiten).

Cómo guarda la contraseña de los usuarios WordPress en la base de datos

Desde las últimas versiones de WordPress, ya no guarda el hash md5 de la contraseña en la base de datos, en la tabla wp_users o para ser más precisos, sí que lo guarda, pero combinado con un salt para hacerlo más seguro.

Lo que hace WordPress, cuando el usuario introduce la contraseña en su registro, es calcular el hash md5 de la contraseña que ha introducido y aplicarle un salt, un añadido que modifica el hash y lo hace más seguro frente a ataques de diccionario.

Por ejemplo, si la contraseña del usuario es «hola», el hash md5 sin salt sería:

4d186321c1a7f0f354b297e8914ab240

Y ese valor sería el que se almacenaría en la base de datos en versiones anteriores de WordPress. En las nuevas se almacenaría:

$P$Bj5TXY/Mr3CKpDUL3JjmHKm/E.Y9Rg1

Que, además, variará en función de cada WordPress instalado, por lo que queda mucho más segura frente a ataques por diccionario.

Como vemos en el ejemplo, WordPress le añade a aquellas contraseñas a las que ya les ha aplicado el salt los caracteres «$P$B» delante, de forma que (por compatibilidad con versiones anteriores), sigue permitiendo que se introduzca directamente el hash md5 de la contraseña del usuario y funcionará. Lo que hace WordPress es que transcurridos unos minutos, si detecta una contraseña sin los caracteres iniciales $P$B, interpretará que aún no se le ha aplicado el salt y se lo aplicará de forma automática.

Por ello, en el procedimiento de cambio de contraseña que explicaremos a continuación, en la base de datos, guardaremos solo el hash md5 de la contraseña, WordPress se encargará de convertirlo a su formato seguro con salt.

Cambiar la contraseña de acceso a la administración de WordPress mediante phpMyAdmin

Cuando se nos ha olvidado la contraseña y no podemos recuperarla por los métodos habituales de WordPress, como el «¿Has olvidado tu contraseña?»:

Cambiar la contraseña de acceso a la administración de WordPress mediante phpMyAdmin

Podremos modificarla siguiendo las siguientes instrucciones. Este artículo es para usuarios administradores del sitio web, que disponen de acceso a la base de datos.

Abriremos el cliente de acceso a la base de datos, en nuestro caso lo haremos con dos clientes diferentes, para mostrar varias posibilidades.

Desde phpMyAdmin, al que se accede con un navegador web y sabiendo la URL, el usuario y la contraseña. Desplegaremos las tablas de la base de datos y pulsaremos en la tabla «wp_users» (el prefijo wp_ puede variar):

Cambiar la contraseña de acceso a la administración de WordPress mediante phpMyAdmin

Si tenemos muchos registros y queremos mostrar solo uno, al que vayamos a modificarle la contraseña, en lugar de pulsar en la tabla como anteriormente, podemos pulsar en «SQL»:

Cambiar la contraseña de acceso a la administración de WordPress mediante phpMyAdmin

Desde esta ventana podremos introducir la siguiente consulta sql:

Cambiaremos el prefijo «wp_» por el que hayamos establecido en el momento de la instalación de WordPress y cambiaremos el nombre del usuario «admin» por el que queramos modificar la contraseña. Pulsaremos en «Continuar» y nos mostrará los registros de la tabla de usuarios que coincidan con el filtro indicado en el where:

Cambiar la contraseña de acceso a la administración de WordPress mediante phpMyAdmin

Independientemente del método elegido para mostrar los registros, de los dos anteriores, en cuanto hayamos localizado el registro del usuario que queramos modificar la contraseña pulsaremos el botón «Editar» en dicho registro:

Cambiar la contraseña de acceso a la administración de WordPress mediante phpMyAdmin

En el campo «user_pass», en el desplegable, elegiremos «MD5» [1] y en «Valor» [2] introduciremos la nueva contraseña en claro (directamente la que queramos sin hash). Pulsaremos «Continuar» [3]:

Cambiar la contraseña de acceso a la administración de WordPress mediante phpMyAdmin

Se ejecutará la siguiente consulta SQL:

Esta consulta SQL podremos ejecutarla (previo cambio de los datos: la contraseña que queramos establecer, el ID de usuario al que queramos cambiarle la contraseña y el prefijo de la tabla, incluso el filtro que queramos aplicar) en cualquier editor que permita ejecutar consultas SQL, incluso desde el shell de comandos de MySQL y será suficiente para cambiar la contraseña del usuario.

Modificar la contraseña de acceso de un usuario de WordPress desde MySQL Workbench

Otro ejemplo de cliente de acceso a MySQL es MySQL Workbench, es gratuito y es el oficial de MySQL.

Instalaremos este cliente descargándolo de la web oficial de MySQL. Accederemos al servidor y la base de datos MySQL/MariaDB. A continuación filtraremos el usuario de la tabla wp_users al que queramos cambiar la contraseña (para comprobar que existe) o bien los listamos todos. Para mostrar uno ejecutaremos la siguiente consulta SQL (como en el caso anterior):

Modificar la contraseña de acceso de un usuario de WordPress desde MySQL Workbench

Y, en este caso, al no disponer directamente de la función MD5 en la edición del registro, podremos, previamente a la modificación del registro, ejecutar la siguiente consulta SQL:

Ejecutamos la consulta anterior, que nos devolverá el hahs MD5 de nuestra contraseña, cambiando «contraseña_nueva» por la contraseña que queramos establecer al usuario. Copiaremos el valor devuelto en la consulta anterior, pulsando sobre el valor y eligiendo «Copy Row» (lo necesitaremos para modificar el usuario):

Modificar la contraseña de acceso de un usuario de WordPress desde MySQL Workbench

Volveremos a ejecutar la consulta que nos muestre el usuario al que le modificaremos la contraseña:

Pulsaremos en «Editar» [1]:

Modificar la contraseña de acceso de un usuario de WordPress desde MySQL Workbench

Y pegaremos el valor, pulsando en el campo «user_pass» [1] con el botón derecho del ratón y eligiendo «Pegar» [2], es importante quitar las comillas si se han copiado:

Modificar la contraseña de acceso de un usuario de WordPress desde MySQL Workbench

Aplicaremos los cambios pulsando en «Apply»:

Modificar la contraseña de acceso de un usuario de WordPress desde MySQL Workbench

Nos mostrará la consulta SQL que va a ejecutar (que si la sabemos podemos ponerla directamente en el editor evitando todos los pasos anteriores):

Modificar la contraseña de acceso de un usuario de WordPress desde MySQL Workbench

Nos mostrará el resultado de la ejecución de la consulta SQL, pulsaremos en «Finish»:

Modificar la contraseña de acceso de un usuario de WordPress desde MySQL Workbench

Si el comando es correcto y vemos que la contraseña está también correctamente establecida (con una sola comilla al principio y al final) pulsaremos «Apply» para aplicar los cambios.

La consulta SQL es la misma que nos devolvía phpMyAdmin, salvo que en este caso no usamos la función MD5 de MySQL, sino que colocamos el valor hash MD5 de la contraseña directamente.

Y, reiteramos, si sabemos aplicar el filtro en el where de la consulta SQL para modificar únicamente la contraseña del usuario que queramos y sabemos el hash md5 (o usamos la función de MySQL), podremos ejecutarla directamente sin necesidad de realizar todos estos pasos, como indicamos a continuación.

Modificar la contraseña de acceso de un usuario de WordPress desde el shell de comandos de MySQL

En el caso en que no dispongamos de acceso a un cliente de MySQL/MariaDB podremos modificar la contraseña de acceso de un usuario de WordPress desde el shell de comandos de MySQL.

Accederemos a la shell de comandos de MySQL, en el caso de un servidor con Linux CentOS podremos hacerlo con algún cliente SSH, como PuTTY. Una vez conectados al servidor mediante SSH, nos conectaremos a MySQL con el comando:

mysql -u usuario_mysql -p

Donde usuario_mysql será el usuario de MySQL con permisos suficientes para acceder a la base de datos de MySQL y modificar registros (update) en la tabla wp_users.

Una vez conectados a MySQL, mostraremos los catálogos con el comando:

show databases;

y accederemos a la base de datos de WordPress, en nuestro caso «bd_wordpress», con el comando:

use bd_wordpress;

Modificar la contraseña de acceso de un usuario de WordPress desde el shell de comandos de MySQL

Ahora podremos ejecutar las consultas SQL que necesitemos, o bien para mostrar los usuarios, con:

Modificar la contraseña de acceso de un usuario de WordPress desde el shell de comandos de MySQL

O bien cualquier otra consulta, con filtro where o lo que queramos. En cuanto sepamos el usuario al que queremos cambiarle la contraseña, por ejemplo el usuario con user_login=’admin’ podremos ejecutar la siguiente consulta para actualizar y modificar la contraseña:

Modificar la contraseña de acceso de un usuario de WordPress desde el shell de comandos de MySQL

Otra forma, más rápida y directa, de modificar la contraseña de un usuario de una base de datos MySQL/MariaDB de WordPress.

Comprobación de que WordPress ha aplicado el salt al texto md5 de la contraseña

Una vez que tenemos la nueva contraseña guardada en la base de datos, el hash md5, cuando hayan transcurrido unos minutos, podremos comprobar que WordPress ha cambiado ese md5 por su md5 más el salt, añadiendo la cadena $P$B al principio:

Comprobación de que WordPress ha aplicado el salt al texto md5 de la contraseña

Y vemos que en nada se parece lo que ha dejado a lo que nosotros almacenamos en su momento. Pero el acceso del usuario seguirá funcionando igualmente.