私たちは物事を継承しますが、他のものより悪いものもあります。
最近、プレーンテキストのパスワードを持つユーザー テーブルを継承しました。通常、これはそれほど大きな問題ではありませんが、テーブルは多くの Web アプリケーションに接続されています。そのうちのいくつかは、壊れて最初に文句を言わなければ見つけることができないものです。
これらの謎のアプリの接続文字列やハードコードされた SQL を変更する必要なく、このパスワード列を暗号化したいと考えています。このテーブルを「OR」句を使用するmysqlビューに置き換えることで、2つの方法で認証できると考えていました。アイデアは、encrypted_sql_check OR plaintext_sql_check のようなもので、平文の sql チェックは md5(plaintextpw, salt) などのように見え、基本的にソルトを使用してクリプターを介して平文の送信を実行し、一致をチェックします。
私はデータベース管理者ではないので、これはアイデアを吐き出すコードモンキーにすぎません。これは実現可能ですか?insert/update/etc クエリで問題が発生することはありますか? 言い換えれば... 誰かがなぜこれがうまくいかないのか教えてもらえますか? このデータベース テーブルは、drupal のユーザー テーブルとしても機能するため、問題が発生する理由がある場合は、それも知っておくとよいでしょう。
ありがとう!