2011-01-20 14 views
4

私は、WordpressのブログにPHPスクリプトやMySQL経由でユーザーを挿入する必要があり、プレーンテキストのパスワードを持っています。Wordpress MD5パスワード

$query = "INSERT INTO $new_db.wp_users (user_login, user_pass, user_nicename) 
select user_email, md5(user_password), user_name from $source_db.users"; 

しかし、パスワードはすべてWordpressのパスワードの外観とは異なるように見えます。すべてのパスワードはすべて$P$B

で始まります。そこからは塩があると言われています... test123のようなパスワードを取ってWordpressが期待する暗号化されたパスワードに変換する方法はありますか?

+0

WordPressのコードを調べてパスワードを暗号化する方法を確認しましたか? –

答えて

5

最も賢明な解決策は、関連するWordPress機能(wp_generate_password)を使用することです。

ただし、これがオプションでない場合は、wp_generate_password機能(/wp-includes/pluggable.phpにあります)と関連するサポート機能を抽出するだけです。

-1

この機能を使用すると、パスワードを変換するために説明するものでしょう:

<? 
function encrypt_for_wordpress($plain_text_password) { 
    return md5("\$P\$B" . $plain_text_password); 
} 

あなたはnew_dbに挿入し、その後、PHPでそれを変換し、source_dbからそれを選択する必要があります。

1

Wordpressは、MD5とは異なる、phpassハッシュを使用します。

+1

wp-includes/class-phpass.phpファイルから: #現在使用中の #すべてのバージョンで利用できる唯一の #暗号プリミティブであるため、ここではMD5を使用することを余儀なくされています。 PHPの独自の低レベル暗号 #を実装すると、パフォーマンスが大幅に悪くなります。結果的に反復回数が少なくなり、(PHP以外のコードでは) #の解読が速くなります( #)。 – Ivan

1

パスワードを作成する最も簡単な方法はある...

  1. user_passのためのMySQLのテーブルにエントリとして任意のゴミを使用するが、 正しいメール。
  2. ログインパネルの「パスワードを忘れた」機能を使用して、正しいパスワードを生成します(またはこのリンクを自動的に有効にしてユーザーに通知します)。

「wp_capabilities」と「wp_user_level」を別のアカウントからコピーすることを忘れないでください。

関連する問題