2012-04-01 6 views

答えて

1

私はいくつかの類似の移行をこのように実行します。

  1. は、新しい(新しいパスワードのハッシュ意志にコピーし

  2. 古いパスワードハッシュと塩のために、古いデータベースからすべてのユーザーを追加フィールドと工夫モデルのユーザーを作成します。

  3. パッチの認証方法 - ユーザーが新しいパスハッシュなしでアカウントにサインインしようとすると(これは古いユーザーであることを意味します)、古い認証で認証します(実際のユーザーのパスがわからないため空です)アルゴリズムITHM、それが通過すれば、我々は彼のパスワード、新しいパスハッシュのために作成します(使用して工夫)

+0

ああ、それは少し詳細なプロセスのようですが、あなたは同じようなケースについて話している参照やブログに私を指摘できますか?または例がありますありがとう非常に – simo

+0

申し訳ありません、私は自分自身、外部ソースなしでそれをしました.. – MikDiet

+0

その大丈夫、3番目のポイントを説明してください、 "私たちは古い認証アルゴリズムによって彼を認証する"ことができます、 Joomlaの古い認証アルゴリズムのユーザーですか?ちょっとした疑問コードを例に説明してください。 – simo

3

私はこれが古いですけど、後で答えを見つけたので、私は他の人のために投稿しますこれに出くわしたと。

joomlaのパスワードフィールドは、パスワードのmd5であり、ランダムに生成されたsaltとコロンとランダムに生成されたsaltです。 )だから、

33da105d239879dae4cdaf58557985c:L8QwPXN02cltv0lkGIyD3JRDU0AR5fcA 

それに戻って取得するには...

1ユーザーにより投稿されたユーザー名用のDB()

user = User.find_by_username(params[:username]) 
を問い合せ:

それはこのような何かを見ていきます

2)その後、パスワードを分割し、配列の2番目の要素を取得します。

salt = user.password.split(":")[1] 

3)あなたは右のユーザ/パスコンボを持っている場合、それは本当である必要があり、ユーザーによって投稿パスワードを()乗り、プラス塩とDB

user.password == Digest::MD5.hexdigest(params[:password] + salt).to_s + ":" + salt 

で1に対してそれを確認...

+1

ありがとうJess、私は塩がJoomlaのパスワードフィールド内で結合されていることを知らなかった – simo

関連する問題