WordPressはどのタイプのハッシュを使用しますか?


回答:


146

WordPressパスワードハッシャーは、WordPressやDrupalなどのコンテンツ管理システムで使用されるポータブルPHPパスワードハッシュフレームワークを実装しています

以前のバージョンではMD5を使用していましたが、悲しいことに、これ以上は使用しませんでした。この暗号化スキームを使用してhttp://scriptserver.mainframe8.com/wordpress_password_hasher.phpでハッシュを生成できます。


12
私のように誰かがこの古い質問に遭遇したのですが、MD5はもはや受け入れられないことに注意してください。> PHP 5.5.0を使用している場合は、新しいpassword_hash関数を使用してください。> PHP 5.3.7しかない場合は、ここで互換性ライブラリを使用しますgithub.com/ircmaxell/password_compat
Andrew Brown

14
これで効果があるかどうかはわかりませんが、WPは最初にパスワードを使用したときにMD5をそのまま使用し、それからパスワードを「ソルト」します。SOにDBへのアクセス権がある場合、MyPHPAdminを使用してPWを「MyPass」に変更し、「関数」ドロップダウンでMD5を選択すると、ストレートMD5として保存されます。Wordpressにサインインすると、$ P $ B __ /が追加された「塩漬け」バージョンに変更されます。
BillyNair、2015年

基本的に、ユーザーがPWでサインインしていない場合でも、MD5形式のままであり、同じPWを持つ他のユーザーと同じように見えます。サインインすると、同じSAW EXACT PWでも自分の「塩」に変わるので、あなたとあなたの友人が同じPWで同時にサインインすると、「塩漬けMD5」は異なって見えます。つまり、PWがデフォルトと同じであっても、WPがソルトバージョンに変更するため、PWがデフォルトから変更されているかどうかをテストするためにDBをクエリする方法はありません。
BillyNair 2015年

@AndrewBrown、私はMD5がもはや受け入れられないことに同意しません。CMSからパスを作成する場合は本当かもしれませんが、DBレベルで試してみてください。私はphpMyAdminにログインし、wp_usersテーブルのパスワードフィールドにMD5ハッシュを生成します。それは機能します... Google:WordPress管理者パスワードを手動でリセットします。johnMettaの回答も参照してください。
wpcoder

3
@wpcoder MD5は質問されず、100%暗号的に安全ではなく、ハッシュされたパスワードの保存方法として使用することはできません。
Andrew Brown

21
$hash_type$salt$password

ハッシュがソルトを使用しない場合、$その兆候はありません。あなたの場合の実際のハッシュは2番目の後です$

これは、さまざまなソルトを使用してさまざまなタイプのハッシュを作成し、そのストリングを他の値と照合する方法を知っている関数に供給することができるためです。


おかげで、md5ハッシュは次のように16進数である必要があると思いました。b1946ac92492d2347c6235b4d2611184なぜこのハッシュには文字AZとが含まれているのですか。初期化?それはmd5ハッシュですか?

使用されるハッシュのタイプである可能性があります。ハッシュは固定サイズの文字列です。何でも入れられます。
オラフルWaage

@Amanda Kumar。このパーティーには非常に遅れていますが、MD5は128ビット(16バイト)の値を生成します。その値は、16進文字列、Base64文字列、ファイル内の生データなど、さまざまな方法で格納および表現できます。通常、16進数で表されるMD5値が表示されますが、WordPressは代わりにBase64を使用します。16進数値は、Base64ではsZRqySSS0jR8YjW00mERhA ==となり、16進数より25%少ない文字を使用して同じデータを表します。
jordanbtucker 2013

14

MD5はデータベースを手動で変更するのに役立ちました。参照:パスワードのリセット


1
いいえ、これはプレーンなMD5ハッシュではない、無地のMD5ハッシュは次のようになります。b1946ac92492d2347c6235b4d2611184は、私はそれをMD5に基づいていると聞きましたが、缶誰かがそれが使用するハッシュの種類を教えてください、どのようなオプションpasswordsproにseelectする

24
MD5は手動でテーブルに入力すると機能しますが、最初のログイン時にWPは独自のハッシュを使用してMD5を書き換えるため、パスワードのリセットに最適ですが、それ以上は機能しません。
GiladG、2009年

1
@FranciscoCorralesMorales-PassWordをそのままDBに入力してから、ドロップダウンからMD5を選択しても機能します。MD5暗号化文字列をボックスにコピーして貼り付けることもできます。何も選択しないと機能します(つまり、PWが "qwertyuiop"の場合、ND5は "6eea9b7ef19179a06954edd0f6c05ceb"になります。ストレートな "qwertyuiop"パスワードを使用する場合は、 " MD5 "、またはその長いハッシュを使用し、何も選択せず、DBを保存してから、" qwertyuiop "を使用してWordPressにログインすると、動作します)
BillyNair

12

Wordpress DBで手動でパスワードをリセットするには、単純なMD5ハッシュで十分です。(以下の理由を参照)

下位互換性の破壊を防ぐために、データベースに保存されているMD5ハッシュパスワードは引き続き有効です。ユーザーがそのようなパスワードでログインすると、WordPressはMD5が使用されたことを検出し、より安全な方法を使用してパスワードを再ハッシュし、新しいハッシュをデータベースに保存します。

出典:http : //eamann.com/tech/wordpress-password-hashing/

更新:これは2014年に投稿された回答でした。WPを使用しなくなったため、WPの最新バージョンでも引き続き機能するかどうかはわかりません。


MD5ハッシュを保存しても機能しなくなります。出典:試してみました。
Jay Jee

ちょうどそれも試してログインしました。MD5はwpハッシュに自動変換されました。Wpバージョン5.1
ミロ

10

Wordpressがどのようなハッシュを使用するかを見つけるのにも同じ問題がありました。

これは、あるハッシュパスワードWP

すでにハッシュされたパスワードをプレーンテキストの文字列と比較します。

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

これらのリンクを参照してください:https : //codex.wordpress.org/Function_Reference/wp_hash_password

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

PasswordHashを使用して、パスワードにソルトを追加し、MD5の8パスでハッシュします。


9

それは、少なくとも使用されているPHPのバージョンに依存します。wp-includes/class-phpass.phpすべての答えが含まれています。


7

これを行う最善の方法は、WordPressクラスを使用してユーザーを認証することです。これが私の解決策です:

1.次のWordPress PHPファイルを含めます。

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

2. PasswordHashクラスのオブジェクトを作成します。

$wp_hasher = new PasswordHash(8, true);

3. CheckPassword関数を呼び出してユーザーを認証します。

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

4. $check変数を確認します。

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

注意: $passwordは平文のハッシュ化されていない$row['user_pass']パスワードですが、データベースからフェッチする必要があるハッシュ化されたパスワードです。


2
答えは明確ではありませんが、$ passwordはハッシュ化されていないクリアテキストのパスですが、$ row ['user_pass']はハッシュ化されたパスワードであり、データベースから自分でフェッチする必要があります。
Advait S

5

phpMyAdminを起動し、WordPressインスタンスからwp_usersにアクセスします。レコードを編集し、MD5と一致するようにuser_pass関数を選択します。新しいパスワードとなる文字列をVALUEに記述します。GOをクリックします。ワードプレスのWebサイトにアクセスして、新しいパスワードを入力します。phpMyAdminに戻ると、WPがHASHを$ P $ Bのようなものに変更したことがわかります。


2017 WPのインストールを2019に確認しました!
Gerard ONeill

2

WordpressはMD5パスワードハッシュを使用します。プレーンテキストパスワードのハッシュを作成します。グローバル$ wp_hasherが設定されていない限り、デフォルトの実装はPasswordHashを使用します。これはパスワードにソルトを追加し、MD5の8パスでハッシュします。MD5はすべてのプラットフォームでサポートされているため、デフォルトで使用されます。$ portable_hashesコンストラクター引数またはプロパティーを使用して、MD5の代わりにBlowfishまたは拡張DES(使用可能な場合)を使用するようにPasswordHashを構成できます。


2

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

グローバル$ wpdb;

$ password = wp_hash_password( "あなたのパスワード");


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.