Welche Art von Hash verwendet WordPress?

Antworten:

146

Der WordPress-Passwort-Hasher implementiert das Portable PHP-Passwort-Hashing-Framework , das in Content-Management-Systemen wie WordPress und Drupal verwendet wird.

Früher haben sie MD5 in den älteren Versionen verwendet, aber leider nicht mehr für mich. Mit diesem Verschlüsselungsschema können Sie unter http://scriptserver.mainframe8.com/wordpress_password_hasher.php Hashes generieren .

Neil
quelle
12
Wenn jemand auf diese alte Frage stößt, wie ich es getan habe, beachten Sie bitte, dass MD5 nicht mehr akzeptabel ist. Wenn Sie> PHP 5.5.0 haben, verwenden Sie die neue password_hashFunktion. Wenn Sie nur> PHP 5.3.7 haben, verwenden Sie die Kompatibilitätsbibliothek hier github.com/ircmaxell/password_compat
Andrew Brown
14
Ich weiß nicht, ob dies überhaupt helfen wird, aber WP wird immer noch das gerade MD5 nehmen, wenn Sie das Passwort zum ersten Mal verwendet haben, dann wird es es "salzen". Wenn Sie also mit MyPHPAdmin Zugriff auf die Datenbank haben, können Sie das PW in "MyPass" ändern, MD5 in der Dropdown-Liste "Funktion" auswählen und es wird als direktes MD5 gespeichert. Melden Sie sich bei Wordpress an und es wird in die "gesalzene" Version mit dem hinzugefügten $ P $ B __ / geändert.
BillyNair
Wenn sich der Benutzer NICHT bei der PW angemeldet hat, liegt diese im MD5-Format vor und sieht genauso aus wie alle anderen Benutzer mit derselben PW. Sobald Sie sich anmelden, ändert sich auch mit diesem GLEICHEN GENAUEN PW Ihr persönliches "Salz". Wenn Sie und Ihr Freund sich gleichzeitig mit demselben PW anmelden, sieht Ihr "gesalzener MD5" anders aus. Das heißt, es gibt keine Möglichkeit, die Datenbank abzufragen, um zu testen, ob ein PW vom Standard geändert wurde, da WP ihn in eine gesalzene Version ändert, selbst wenn er mit dem Standard identisch war.
BillyNair
@ AndrewBrown, ich bin nicht der Meinung, dass MD5 nicht mehr akzeptabel ist. Möglicherweise gilt dies für die Erstellung des Passes aus dem CMS, aber versuchen Sie es auf DB-Ebene. Es funktioniert immer noch. Bis heute, wenn ich das WP-Passwort verliere. Ich melde mich bei phpMyAdmin an und generiere MD5-Hash für Passwortfelder in der Tabelle wp_users und es funktioniert ... Google: Setzen Sie das WordPress-Administratorkennwort manuell zurück. Siehe auch die Antwort von johnMetta.
wpcoder
3
@wpcoder MD5 wird keine Fragen gestellt, 100% kryptografisch unsicher und kann nicht als Hash-Passwort-Speichermethode verwendet werden.
Andrew Brown
21
$hash_type$salt$password

Wenn der Hash kein Salz verwendet, gibt es dafür kein $Zeichen. Der eigentliche Hash in Ihrem Fall ist nach dem 2 ..$

Der Grund dafür ist, dass Sie viele Arten von Hashes mit unterschiedlichen Salzen haben und diese Zeichenfolge in eine Funktion einspeisen können, die weiß, wie sie mit einem anderen Wert abgeglichen werden kann.

Ólafur Waage
quelle
danke, aber ich dachte, md5-Hashes müssten hexadezimal sein, wie folgt: b1946ac92492d2347c6235b4d2611184 warum hat dieser Hash die Zeichen AZ und. drin? Ist es ein MD5-Hash?
Könnte die Art von Hash sein, die verwendet wird. Ein Hash ist nur eine Zeichenfolge mit fester Größe. Könnte alles enthalten, was Sie wollen.
Ólafur Waage
@ Amanda Kumar. Sehr spät zu dieser Party, aber MD5 erzeugt einen 128-Bit-Wert (16 Byte). Dieser Wert kann auf verschiedene Arten gespeichert und dargestellt werden, z. B. als Hex-Zeichenfolge, Base64-Zeichenfolge oder Rohdaten in einer Datei. Sie sehen MD5-Werte normalerweise in hexadezimaler Darstellung, WordPress verwendet jedoch stattdessen Base64. Ihr Hex-Wert wäre sZRqySSS0jR8YjW00mERhA == in Base64, das 25% weniger Zeichen als Hex verwendet, um dieselben Daten darzustellen.
Jordanbtucker
14

MD5 hat bei mir funktioniert, als ich meine Datenbank manuell geändert habe. Siehe: Zurücksetzen Ihres Passworts

JohnMetta
quelle
1
nein, dies ist kein einfacher md5-Hash, einfache md5-Hashes sehen folgendermaßen aus: b1946ac92492d2347c6235b4d2611184 Ich habe gehört, dass es auf md5 basiert, aber kann mir bitte jemand sagen, welche Art von Hash verwendet wird und welche Option in passwordspro ausgewählt werden soll
24
MD5 funktioniert, wenn es manuell in die Tabelle eingegeben wird. Bei der ersten Anmeldung schreibt WP es jedoch mit einem eigenen Hash neu, sodass das Kennwort hervorragend zurückgesetzt werden kann, jedoch nicht mehr.
GiladG
1
@FranciscoCorralesMorales - Die Eingabe des PassWords wie in der Datenbank und die Auswahl von MD5 aus der Dropdown-Liste funktioniert weiterhin. Sie können auch eine MD5-verschlüsselte Zeichenfolge kopieren / in das Feld einfügen und nichts auswählen. Dies funktioniert. Wenn Ihr PW also "qwertyuiop" lautet, lautet Ihr ND5 "6eea9b7ef19179a06954edd0f6c05ceb". Wenn Sie das direkte Kennwort "qwertyuiop" verwenden, wählen Sie " MD5 ", oder verwenden Sie diesen langen Hash und wählen Sie nichts aus, speichern Sie die Datenbank und melden Sie sich dann mit" qwertyuiop "bei WordPress an, und es wird funktionieren)
BillyNair
12

Zum manuellen Zurücksetzen des Kennworts in Wordpress DB ist ein einfacher MD5-Hash ausreichend. (siehe Grund unten)

Um zu verhindern, dass die Abwärtskompatibilität beeinträchtigt wird, sind in der Datenbank gespeicherte MD5-Hash-Kennwörter weiterhin gültig. Wenn sich ein Benutzer mit einem solchen Kennwort anmeldet, erkennt WordPress, dass MD5 verwendet wurde, verarbeitet das Kennwort mithilfe der sichereren Methode erneut und speichert den neuen Hash in der Datenbank.

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

Update: Dies war eine Antwort aus dem Jahr 2014. Ich weiß nicht, ob es für die neueste Version von WP noch funktioniert, da ich nicht mehr mit WP arbeite.

JJLL
quelle
Das Speichern eines MD5-Hashs funktioniert nicht mehr. Quelle: Ich habe es gerade versucht.
Jay Jee
Ich habe es auch versucht und mich angemeldet. Das MD5 wurde automatisch in einen WP-Hash konvertiert. Wp Version 5.1
Miro
10

Ich hatte das gleiche Problem herauszufinden, welche Art von Hash Wordpress verwendet.

Es ist wp Hash Passwort .

Beispiel

Vergleichen Sie ein bereits gehashtes Passwort mit seiner Klartextzeichenfolge:

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

Siehe diese Links: https://codex.wordpress.org/Function_Reference/wp_hash_password

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

Es verwendet PasswordHash, das dem Passwort Salz hinzufügt und es mit 8 Durchgängen von MD5 hascht.

Meisam
quelle
9

Dies hängt zumindest von der verwendeten PHP-Version ab. wp-includes/class-phpass.phpenthält alle Antworten.

innaM
quelle
7

Der beste Weg, dies zu tun, ist die Verwendung der WordPress-Klasse zur Authentifizierung von Benutzern. Hier sind meine Lösungen:

1. Fügen Sie die folgende WordPress-PHP-Datei hinzu:

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

2. Erstellen Sie ein PasswordHashKlassenobjekt:

$wp_hasher = new PasswordHash(8, true);

3. Rufen Sie die CheckPasswordFunktion auf, um den Benutzer zu authentifizieren:

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

4. $checkVariable überprüfen :

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

Bitte beachten Sie Folgendes: $passwordist das nicht gehashte Passwort im Klartext, während $row['user_pass']es das gehashte Passwort ist, das Sie aus der Datenbank abrufen müssen.

Faisal Shaikh
quelle
2
In der Antwort ist nicht klar, aber $ password ist der nicht gehashte Pass im Klartext, während $ row ['user_pass'] das gehashte Passwort ist, das Sie selbst aus der Datenbank abrufen müssen.
Advait S
5

Starten Sie phpMyAdmin und greifen Sie über Ihre WordPress-Instanz auf wp_users zu. Bearbeiten Sie den Datensatz und wählen Sie die Funktion user_pass entsprechend MD5 aus. Schreiben Sie die Zeichenfolge, die Ihr neues Passwort sein wird, in VALUE. Klicken Sie auf GO. Gehen Sie zu Ihrer WordPress-Website und geben Sie Ihr neues Passwort ein. Zurück zu phpMyAdmin werden Sie sehen, dass WP den HASH in etwas wie $ P $ B geändert hat ... viel Spaß!

ceccoto
quelle
bestätigte 2017 WP Installation im Jahr 2019!
Gerard ONeill
2

Wordpress verwendet MD5 Password Hashing. Erstellt einen Hash eines Nur-Text-Passworts. Sofern der globale $ wp_hasher nicht festgelegt ist, verwendet die Standardimplementierung PasswordHash, das dem Kennwort Salt hinzufügt und es mit 8 Durchgängen von MD5 hascht. MD5 wird standardmäßig verwendet, da es auf allen Plattformen unterstützt wird. Sie können PasswordHash so konfigurieren, dass Blowfish oder Extended DES (falls verfügbar) anstelle von MD5 mit dem Konstruktorargument oder der Konstruktoreigenschaft $ portable_hashes verwendet werden.

J. Shabu
quelle
2

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

global $ wpdb;

$ password = wp_hash_password ("Ihr Passwort");

Hiran DA Walawage
quelle