MD5ハッシュを使用してデータベースにユーザーパスワードが保存されている古いアプリケーションがあります。これをSHA-2ファミリーのものに置き換えたいと思います。
私はこれを達成するために2つの可能な方法を考えましたが、どちらもかなり不格好なようです。
1)ブール「フラグ」フィールドを追加します。この後、ユーザーが初めて認証するときは、MD5パスワードハッシュをSHAパスワードハッシュに置き換えて、フラグを設定します。次に、フラグをチェックして、パスワードハッシュが変換されたかどうかを確認できます。
2)SHAハッシュを保存するための2番目のパスワードフィールドを追加します。この後、ユーザーが初めて認証するときは、SHAを使用してパスワードをハッシュし、新しいフィールドに保存します(おそらく、同時にMD5ハッシュを削除します)。次に、SHAフィールドに値があるかどうかを確認できます。これは本質的に私の旗になります。
いずれの場合も、ログイン頻度の低いユーザーに対しては、MD5認証をしばらくの間維持する必要があります。また、アクティブでなくなったユーザーがSHAに切り替えられることはありません。
これを行うためのより良い方法はありますか?