¿Qué tipo de hash usa WordPress?

Respuestas:

146

El hasher de contraseñas de WordPress implementa el marco de hash de contraseñas PHP portátil , que se utiliza en sistemas de gestión de contenido como WordPress y Drupal.

Solían usar MD5 en las versiones anteriores, pero lamentablemente para mí, no más. Puede generar hashes utilizando este esquema de cifrado en http://scriptserver.mainframe8.com/wordpress_password_hasher.php .

Neil
fuente
12
Si alguien se encuentra con esta vieja pregunta como lo hice, tenga en cuenta que MD5 ya no es aceptable. si tienes> PHP 5.5.0 usa la nueva password_hashfunción. si solo tiene> PHP 5.3.7 use la biblioteca de compatibilidad aquí github.com/ircmaxell/password_compat
Andrew Brown
14
No sé si esto ayudará en absoluto, pero WP aún tomará el MD5 directo la primera vez que usó la Contraseña, luego la "saldará". Por lo tanto, si tiene acceso a la base de datos, utilizando MyPHPAdmin puede cambiar el PW a "MyPass", seleccione MD5 en el menú desplegable "Función" y se guardará como un MD5 directo. Inicie sesión en Wordpress y lo cambiará a la versión "salada" con $ P $ B __ / agregado.
BillyNair
Básicamente, si el usuario NO ha iniciado sesión con el PW, todavía estará en formato MD5, se verá igual que cualquier otra persona con ese mismo PW. Una vez que inicie sesión, incluso con ese MISMO PW EXACTO, cambiará a SU "sal" personal, así que usted y su amigo, inicien sesión al mismo tiempo con el mismo PW, su "MD5 salado" se verá diferente. Es decir, no hay forma de consultar la base de datos para probar si un PW ha cambiado desde el valor predeterminado, ya que WP lo cambiará a una versión salada, incluso si era el mismo que el predeterminado.
BillyNair
@ AndrewBrown, no estoy de acuerdo con que MD5 ya no sea aceptable. Puede ser cierto para crear el pase desde el CMS, pero intente con DB Level ... todavía funciona. Hasta la fecha, cuando pierdo la contraseña de WP; Estoy conectado a phpMyAdmin y genero hash MD5 para campos de contraseña en la tabla wp_users y funciona ... Google: restablece manualmente la contraseña de administrador de WordPress ... vea también la respuesta de johnMetta.
wpcoder
3
@wpcoder MD5 no tiene preguntas, es 100% inseguro criptográficamente e inaceptable para usar como método de almacenamiento de contraseñas hash.
Andrew Brown
21
$hash_type$salt$password

Si el hash no usa sal, entonces no hay $señal de eso. El hash real en su caso es posterior al 2do.$

La razón de esto es que puede tener muchos tipos de hashes con diferentes sales y alimenta esa cadena en una función que sabe cómo combinarla con algún otro valor.

Ólafur Waage
fuente
gracias pero pensé que los hash md5 tenían que estar en hexadecimal, así: b1946ac92492d2347c6235b4d2611184 ¿por qué este hash tiene caracteres AZ y. ¿en eso? ¿Es un hash md5?
Podría ser ese tipo de hash que se usa. Un hash es solo una cadena de tamaño fijo. Podría contener lo que quieras.
Ólafur Waage
@Amanda Kumar. Extremadamente tarde para esta fiesta, pero MD5 produce un valor de 128 bits (16 bytes). Ese valor puede almacenarse y representarse de diferentes maneras, por ejemplo, como una cadena hexadecimal, una cadena Base64 o datos sin procesar en un archivo. Comúnmente ve los valores MD5 representados en hexadecimal, sin embargo, WordPress usa Base64 en su lugar. Su valor hexadecimal sería sZRqySSS0jR8YjW00mERhA == en Base64, que utiliza un 25% menos de caracteres que el hexadecimal para representar los mismos datos.
jordanbtucker
14

MD5 funcionó para mí cambiando mi base de datos manualmente. Consulte: Restablecimiento de su contraseña

JohnMetta
fuente
1
no, esto no es un hash simple md5, los hash simples md5 se ven así: b1946ac92492d2347c6235b4d2611184 He escuchado que está basado en md5, pero ¿alguien puede decirme qué tipo de hash usa y qué opción ver en las contraseñas?
24
MD5 funcionará si se ingresa manualmente en la tabla, pero al iniciar sesión por primera vez, WP lo reescribirá con su propio hash, por lo que funciona muy bien para restablecer la contraseña, pero no más que eso.
GiladG
1
@FranciscoCorralesMorales: escribir la contraseña como está en la base de datos y luego seleccionar MD5 del menú desplegable aún funciona. También puede copiar / pegar una cadena encriptada MD5 en el cuadro y no seleccionar nada y funcionará (por lo tanto, si su PW es "qwertyuiop", su ND5 es "6eea9b7ef19179a06954edd0f6c05ceb". Si usa la contraseña "qwertyuiop", seleccione " MD5 ", o use ese hash largo y no seleccione nada, guarde la base de datos y luego inicie sesión en WordPress usando" qwertyuiop "y funcionará)
BillyNair
12

Para restablecer manualmente la contraseña en Wordpress DB, un simple hash MD5 es suficiente. (ver razón más abajo)

Para evitar romper la compatibilidad con versiones anteriores, las contraseñas hash MD5 almacenadas en la base de datos siguen siendo válidas. Cuando un usuario inicia sesión con dicha contraseña, WordPress detecta que se utilizó MD5, vuelve a ingresar la contraseña con el método más seguro y almacena el nuevo hash en la base de datos.

Fuente: http://eamann.com/tech/wordpress-password-hashing/

Actualización: esta fue una respuesta publicada en 2014. No sé si todavía funciona para la última versión de WP ya que ya no trabajo con WP.

JJLL
fuente
Guardar un hash MD5 ya no funciona. Fuente: acabo de probarlo.
Jay Jee
También lo probé e inicié sesión. El MD5 se convirtió automáticamente a un hash wp. Wp versión 5.1
Miro
10

Tuve el mismo problema para descubrir qué tipo de hash utiliza Wordpress.

Es la contraseña de hash wp .

Ejemplo

Compare una contraseña ya cifrada con su cadena de texto sin formato:

<?php
$wp_hasher = new PasswordHash(8, TRUE);

$password_hashed = '$P$B55D6LjfHDkINU5wF.v2BuuzO0/XPk/';
$plain_password = 'test';

if($wp_hasher->CheckPassword($plain_password, $password_hashed)) {
    echo "YES, Matched";
} else {
    echo "No, Wrong Password";
}
?>

Ver estos enlaces: https://codex.wordpress.org/Function_Reference/wp_hash_password

https://developer.wordpress.org/reference/functions/wp_hash_password

Utiliza PasswordHash, que agrega sal a la contraseña y la agrega con 8 pases de MD5.

Meisam
fuente
9

Depende al menos de la versión de PHP que se use. wp-includes/class-phpass.phpcontiene todas las respuestas

innaM
fuente
7

La mejor manera de hacer esto es usar la clase de WordPress para autenticar a los usuarios. Aquí están mis soluciones:

1. Incluya el siguiente archivo PHP de WordPress:

include_once(dirname(dirname(dirname(__FILE__))) . DIRECTORY_SEPARATOR . "wp-includes" . DIRECTORY_SEPARATOR . "class-phpass.php");

2. Crear un objeto de PasswordHashclase:

$wp_hasher = new PasswordHash(8, true);

3. CheckPasswordfunción de llamada para autenticar usuario:

$check = $wp_hasher->CheckPassword($password, $row['user_pass']);

4. $checkvariable de verificación :

if($check) {
   echo "password is correct";
} else {
   echo "password is incorrect";
}

Tenga en cuenta que: $passwordes la contraseña sin hash en texto claro, mientras que $row['user_pass']es la contraseña con hash que necesita obtener de la base de datos.

Faisal Shaikh
fuente
2
No está claro en la respuesta, pero $ password es el paso sin hash en texto claro, mientras que $ row ['user_pass'] es la contraseña hash que debes obtener del db tú mismo.
Avance S
5

Inicie phpMyAdmin y acceda a wp_users desde su instancia de WordPress. Edite el registro y seleccione la función user_pass para que coincida con MD5. Escriba la cadena que será su nueva contraseña en VALUE. Haga clic en IR. Vaya a su sitio web de WordPress e ingrese su nueva contraseña. De vuelta a phpMyAdmin, verá que WP cambió el HASH a algo así como $ P $ B ... ¡disfrute!

ceccoto
fuente
¡confirmada instalación de WP 2017 en 2019!
Gerard ONeill
2

Wordpress utiliza el hash de contraseña MD5 . Crea un hash de una contraseña de texto sin formato. A menos que se establezca el $ wp_hasher global, la implementación predeterminada usa PasswordHash, que agrega sal a la contraseña y la agrega con 8 pases de MD5. MD5 se usa de forma predeterminada porque es compatible con todas las plataformas. Puede configurar PasswordHash para usar Blowfish o DES extendido (si está disponible) en lugar de MD5 con el argumento o la propiedad del constructor $ portable_hashes.

J. Shabu
fuente
2

include_once ('../../../ wp-config.php');

global $ wpdb;

$ contraseña = wp_hash_password ("su contraseña");

Hiran DA Walawage
fuente