web-dev-qa-db-ja.com

メールアドレスをデータベースにプレーンテキストで保持する必要がありますか?

誰にでも明らかです(私は願っています)パスワードを少なくともソルト/ハッシュせずに保存することはひどいの考えです。

メールはどうですか?サブスクリプションのメールアドレスを保持しているとしましょう。適切に暗号化すると、ユーザーにメールを送信するのに使用できない場合があります。一方、暗号化せずにデータベースが盗まれた場合、すべてのユーザーが潜在的なスパムの危険にさらされます。

この質問は、法律に固有の問題(与えられることもありますが、国に依存したままです)やデータベース自体の暗号化についてではありません。

14
Pierre Arlaud

アカウントの確認/認証のためだけにこれらのレコードを保持する場合、メールアドレスのソルトハッシュを保存することもできます。

他の場合では、電子メールを暗号化すると、見返りをほとんど得ることなくデータベースを維持する作業が難しくなるように思えます。

おそらくデータベース自体のアクセスを保護する方が良い選択です。通常、データベースには収集したくない情報が他にもたくさんあります。


Stackoverflowに関する同様の質問: データベース内の電子メールアドレスを暗号化する価値はありますか?

9
manlio

もう全部言ったと思います。

私が考えられる唯一のことは、SHA1のような一方向ハッシュフィルターを使用して電子メールアドレスを格納しないことです。アプリケーションでいくつかの(リバーシブル)公開鍵暗号化を使用し、秘密鍵がデータベースの近くにないことを確認して、それらが一緒に「盗まれ」ないようにします。

そうすれば、メールアドレスを暗号化解除してメールを送信できます。