2011-01-30 18 views
0

私はvBullitenとDjangoのユーザデータベースを統合しようとしています。私はvBがmd5アルゴリズムを使ってパスワードをハッシュしていることを知っています。私は各vBユーザーの塩分とパスワードを持っており、これらのアカウントをDjangoにインポートする方法を知りたいと思っています。Djangoのパスワードハッシュ

私は明らかにDjangoユーザーのパスワードを次のように変更しました。

MD5の$ vb's_saltます$ vb's_password

これはちょうど

任意のアイデアを「ユーザー名とパスワードが一致しません」というメッセージと、Djangoのログインフォームをバックスロー?

+0

あなたが知っているパスワード(例えば「パスワード」のためのvBulletinエントリの例を提供することができます:)その後、我々はより簡単にすることができ、そしておそらくいくつかを考え出しますこれを可能にするカスタムコード。 – nealmcb

答えて

1

明らかな最初の質問:どのようにユーザーのパスワードを変更しましたか? algo $ salt $パスワード文字列を直接データベースに入れる必要があります。

vBulletingは、パスワードと塩からパスワードハッシュを作成する別の方法を使用する可能性があります。このような場合は、別の方法でユーザーのパスワードを確認してDjango形式で保存する代替ログインを実装する必要があります。

+0

stefanw、入力いただきありがとうございます。私はサイトの管理セクションを介してデータベースにパスワードを追加しました。 algo $ salt $ passwordの形式でパスワードを示すパスワードボックスが分かりますか?これは、それが機能するかどうかを確認するために手作業で行われました。結局のところ、代わりにこれを行うPythonスクリプトを書くつもりです。 –

1

dbからパスワードを手動で更新することも、Pythonを書き込むこともできます。

ユーザーオブジェクトのパスワード属性は、この形式の文字列です:

hashtype$salt$hash

ドル記号文字で区切られ、hashtype、塩とハッシュです。

ハッシュタイプは、sha1(デフォルト)、md5またはcrypt - パスワードの一方向ハッシュを実行するために使用されるアルゴリズムです。 Saltは、生のパスワードを暗号化してハッシュを作成するために使用されるランダムな文字列です。 cryptメソッドは、利用可能な標準Python暗号モジュールを持つプラットフォームでのみサポートされています。

例えば:

sha1$a1976$a36cc8cbf81742a8fb52e221aaeab48ed7f58ab4

set_password()とcheck_password()関数は、舞台裏で、これらの値の設定やチェックを扱います。

(参照:http://docs.djangoproject.com/en/dev/topics/auth/#passwords

+0

が高くなりました。上記の私のコメントをstefanwの返信に載せておけば、テストユーザーのパスワードを変更するためにdjangoのユーザーオブジェクトメソッドを使用していないためです。入力いただきありがとうございます。 –

+0

私は単一のユーザーのデータベースを手動で更新し、彼がそれ以降にログインできるかどうかを確認することをお勧めします。管理インターフェースについては不明です。 – Ali

1

vBulletinによっては、パスワードをDjangoのと同じように、塩とハッシュされません。

vBulletinによってはこのようにそれをしない:

$hash_stored_in_database = md5(md5($plaintext_password) . $salt); 
関連する問題