8

私は、CodeIgniter 1.7.3 (PHP 4.2 サーバー上) で構築されたアクティブに使用されているアプリケーションを、新しい PHP 5.3 サーバー上で Laravel 4 を使用して再構築するために雇われました。

システムには約 500 人のユーザーがいて、そのパスワードはソルト付きの SHA-1 ハッシュで暗号化されています。アプリケーションのセキュリティを強化し、Laravel 4 の認証システムと統合するために bcrypt を使用したいと考えています。

これらのユーザーのパスワードをどのように移行することをお勧めしますか?

4

3 に答える 3

11

ハッシュの要点は、元のパスワードを復元できないことです。

次の 3 つのオプションがあります。

  • SHA1 ハッシュの bcrypt ハッシュを保存し、各パスワードを SHA1 ハッシュしてから、ログインごとに bcrypt します。
    これは良い考えではないかもしれません

  • ユーザーが次回ログインするときに各ハッシュをアップグレードします。(プレーンテキストをハッシュするため)
    これは最良のオプションですが、すべてのユーザーがログインするまで SHA1 ハッシュと移行コードを保持する必要があります。

  • すべてのユーザーをランダムに暗号化されたパスワードにリセットし、すべてのユーザーに Forgot Password を使用して元に戻すように強制します。
    あなたはおそらくこれをしたくないでしょう

于 2013-10-03T14:28:07.660 に答える
7
  • どのハッシュアルゴリズムが使用されたかをシステムに伝える列をデータベースに追加します
  • ログイン時に、通常どおり資格情報を確認します
  • 古いパスワードを使用していてログインに成功した場合は、入力したパスワードを暗号化し、データベース内のパスワードとアルゴリズムを更新します。
于 2013-10-03T14:30:59.540 に答える
1

ユーザーごとにランダムなパスワードを作成し、新しいパスワードを記載した通知メールを全員に送信できます。ただし、ユーザーが電子メールを表示しないと、混乱が生じます。

bcrypt 値用に別の db フィールドを追加し、ユーザーが変更後に初めてログインするときにエントリを作成することをお勧めします。別のフィールドを使用するか、古いハッシュを削除して追跡することができます。

アクティブなユーザーが移行したら、残りのユーザーベースにランダム パスワード アプローチを自由に使用して、移行を完了してください。

于 2013-10-03T14:34:45.697 に答える