Che tipo di hash usa WordPress?


Risposte:


146

L'hash della password di WordPress implementa il framework di hashing della password PHP portatile , che viene utilizzato nei sistemi di gestione dei contenuti come WordPress e Drupal.

Usavano MD5 nelle versioni precedenti, ma purtroppo per me, non di più. Puoi generare hash usando questo schema di crittografia su http://scriptserver.mainframe8.com/wordpress_password_hasher.php .


12
qualcuno incontra questa vecchia domanda come ho fatto, per favore nota che MD5 non è più accettabile. se hai> PHP 5.5.0 usa la nuova password_hashfunzione. se hai solo> PHP 5.3.7 usa la libreria di compatibilità qui github.com/ircmaxell/password_compat
Andrew Brown

14
Non so se questo sarà di alcun aiuto, ma WP prenderà comunque l'MD5 diretto la prima volta che hai usato la Password, quindi la salperà. Quindi, se si ha accesso al DB, usando MyPHPAdmin è possibile modificare la PW in "MyPass", selezionare MD5 nel menu a discesa "Funzione" e salverà come un semplice MD5. Accedi a Wordpress e lo cambierà nella versione "salata" con $ P $ B __ / aggiunto.
BillyNair,

Fondamentalmente, se l'utente NON ha effettuato l'accesso con la PW, sarà comunque nel formato MD5, sembrerà uguale a chiunque altro con quella stessa PW. Una volta effettuato l'accesso, anche con quello SAME EXACT PW, cambierà il TUO "salt" personale, quindi tu e il tuo amico, accedete contemporaneamente con lo stesso PW, il vostro "MD5 salato" avrà un aspetto diverso. Ciò significa che non è possibile eseguire una query sul DB per verificare se un PW è stato modificato dal valore predefinito, poiché WP lo cambierà in una versione salata, anche se era uguale al valore predefinito.
BillyNair,

@AndrewBrown, non sono d'accordo sul fatto che MD5 non sia più accettabile. Può essere vero per la creazione del pass dal CMS, ma prova a livello DB ... funziona ancora. Alla data in cui perdo la password WP; Ho effettuato l'accesso a phpMyAdmin e ho generato l'hash MD5 per i campi password nella tabella wp_users e funziona ... Google: reimposta manualmente la password dell'amministratore di WordPress. Vedi anche la risposta di johnMetta.
wpcoder,

3
@wpcoder MD5 non pone domande, al 100% crittograficamente insicuro e inaccettabile da utilizzare come metodo di memorizzazione della password con hash.
Andrew Brown,

21
$hash_type$salt$password

Se l'hash non usa un sale, allora non c'è alcun $segno per quello. L'hash reale nel tuo caso è dopo il 2 °$

Il motivo di ciò è, quindi puoi avere molti tipi di hash con diversi sali e nutre quella stringa in una funzione che sa abbinarla ad un altro valore.


grazie ma ho pensato che gli hash md5 dovevano essere in esadecimale, in questo modo: b1946ac92492d2347c6235b4d2611184 perché questo hash ha caratteri AZ e. dentro? è un hash md5?

Potrebbe essere quel tipo di hash utilizzato. Un hash è solo una stringa di dimensioni fisse. Potrebbe contenere tutto quello che vuoi.
Ólafur Waage,

@Amanda Kumar. Estremamente in ritardo per questa parte, ma MD5 produce un valore di 128 bit (16 byte). Tale valore può essere archiviato e rappresentato in diversi modi, ad esempio una stringa esadecimale, una stringa Base64 o dati non elaborati in un file. Si vedono comunemente valori MD5 rappresentati in esadecimale, tuttavia WordPress utilizza invece Base64. Il valore esadecimale sarebbe sZRqySSS0jR8YjW00mERhA == in Base64, che utilizza il 25% di caratteri in meno rispetto a hex per rappresentare gli stessi dati.
jordanbtucker,

14

MD5 ha funzionato per me modificando il mio database manualmente. Vedi: Reimpostazione della password


1
no, questo non è un semplice hash md5, gli hash md5 semplici assomigliano a questo: b1946ac92492d2347c6235b4d2611184 ho sentito che si basa su md5, ma qualcuno può dirmi quale tipo di hash utilizza e quale opzione per selezionare in passwordspro

24
MD5 funzionerà se immesso manualmente nella tabella, ma al primo accesso WP lo riscriverà usando il proprio hash, quindi funziona benissimo per reimpostare la password ma non di più.
GiladG,

1
@FranciscoCorralesMorales: digitare PassWord come nel DB, quindi selezionare MD5 dal menu a discesa funziona ancora. Puoi anche copiare / incollare una stringa crittografata MD5 nella casella e non selezionare nulla e funzionerà (quindi, se la tua PW è "qwertyuiop", il tuo ND5 è "6eea9b7ef19179a06954edd0f6c05ceb". Se usi la "password qwertyuiop", seleziona " MD5 ", oppure usa quell'hash lungo e non selezionare nulla, salva il DB, quindi accedi a WordPress usando" qwertyuiop "e funzionerà)
BillyNair,

12

Per reimpostare manualmente la password in Wordpress DB, è sufficiente un semplice hash MD5. (vedi motivo sotto)

Per impedire l'interruzione della compatibilità con le versioni precedenti, le password con hash MD5 archiviate nel database sono ancora valide. Quando un utente accede con tale password, WordPress rileva che è stato utilizzato MD5, ripete la password utilizzando il metodo più sicuro e memorizza il nuovo hash nel database.

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

Aggiornamento: questa è stata una risposta pubblicata nel 2014. Non so se funziona ancora per l'ultima versione di WP poiché non lavoro più con WP.


Il salvataggio di un hash MD5 non funziona più. Fonte: l'ho appena provato.
Jay Jee,

L'ho appena provato e ho effettuato l'accesso. L'MD5 è stato convertito automaticamente in un hash wp. Wp versione 5.1
Miro

10

Ho avuto lo stesso problema nello scoprire quale tipo di hash usa Wordpress.

È la password hash di wp .

Esempio

Confronta una password già con hash con la sua stringa di testo semplice:

<?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";
}
?>

Vedi questi link: https://codex.wordpress.org/Function_Reference/wp_hash_password

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

Usa PasswordHash, che aggiunge il sale alla password e l'hash con 8 passaggi di MD5.


9

Dipende almeno dalla versione di PHP utilizzata. wp-includes/class-phpass.phpcontiene tutte le risposte.


7

Il modo migliore per farlo è utilizzare la classe WordPress per autenticare gli utenti. Ecco le mie soluzioni:

1. Includi il seguente file PHP di WordPress:

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

2. Crea un oggetto di PasswordHashclasse:

$wp_hasher = new PasswordHash(8, true);

3. chiama la CheckPasswordfunzione per autenticare l'utente:

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

4. controlla $checkvariabile:

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

Nota: $passwordè la password senza hash in chiaro mentre $row['user_pass']è la password con hash che devi recuperare dal database.


2
Non è chiaro nella risposta ma $ password è il passaggio senza hash nel testo in chiaro mentre $ row ['user_pass'] è la password con hash che devi recuperare da te.
Advait S,

5

Avvia phpMyAdmin e accedi a wp_users dalla tua istanza di wordpress. Modifica il record e seleziona la funzione user_pass in modo che corrisponda a MD5. Scrivi la stringa che sarà la tua nuova password in VALUE. Fai clic su GO. Vai al tuo sito web wordpress e inserisci la tua nuova password. Tornando a phpMyAdmin vedrai che WP ha cambiato l'HASH in qualcosa come $ P $ B ... divertiti!


confermata l'installazione WP 2017 nel 2019!
Gerard ONeill,

2

Wordpress utilizza l' hash della password MD5 . Crea un hash di una password in testo semplice. A meno che non sia impostato il $ wp_hasher globale, l'implementazione predefinita utilizza PasswordHash, che aggiunge salt alla password e lo hash con 8 passaggi di MD5. MD5 viene utilizzato per impostazione predefinita perché è supportato su tutte le piattaforme. È possibile configurare PasswordHash per utilizzare Blowfish o DES esteso (se disponibile) invece di MD5 con l'argomento o la proprietà del costruttore $ portable_hashes.


2

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

$ wpdb globale;

$ password = wp_hash_password ("la tua password");


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.