私は、さまざまな安全でない/ひどく安全でない MD5 ベースのパスワード ハッシュを使用して、いくつかのプロジェクトを更新している最中です。私は今、ベスト プラクティスについて少なくともいくらか詳しい情報を得ていますが、何か間違ったことをしているのではないかとまだ疑問に思っています。私が実装している特定のプロセスが他の場所で使用されているのを見たことがありませんが、少なくとも 1 人の SO ユーザーが同様のことをしたいと考えているようです。私の場合:
パスワード ハッシュは bcrypt を使用して生成されます。(適切なオプションは bcrypt、scrypt、または pbkdf2 のようで、bcrypt は PHP で最も簡単にアクセスできるためです。)
ハッシュごとに異なるランダムなソルトが使用されます。(攻撃者が単一の静的ソルトで計算されたカスタム レインボー テーブルを生成するのを防ぐため。)
ハッシュ、アルゴリズム設定、ソルトは一緒に保存されます。(これは、PHP の crypt 関数がハッシュ値として提供するものだからです。)
ログインが成功すると、ハッシュは新しいランダムソルトで再計算されます。
私が気になっているのはその最後のステップです。ここでの私の意図は、時間の経過とともにハッシュ アルゴリズムを更新できるようにすることです。これにより、定期的にログインするユーザーは、利用可能な最も安全な形式でパスワードを保存できます。
私の質問は次のとおりです。
これは時間の無駄ですか?
これを行うことに危険はありますか?