サーバーのデータベースにいくつかのパスワードを保存したいと考えています。
パスワードを必要とするサードパーティの API にパスワードを使用したいので、パスワードは回復可能である必要があります。(そのため、md5 のような一方向のメソッドは使用できません...)
データベースにパスワードを保存する最良の方法は何ですか? プレーンテキストを保存するよりも良い方法はありませんか?
サーバーのデータベースにいくつかのパスワードを保存したいと考えています。
パスワードを必要とするサードパーティの API にパスワードを使用したいので、パスワードは回復可能である必要があります。(そのため、md5 のような一方向のメソッドは使用できません...)
データベースにパスワードを保存する最良の方法は何ですか? プレーンテキストを保存するよりも良い方法はありませんか?
AESは暗号的に健全であり、おそらく新しいアプリケーションに選択される最も一般的な暗号化メカニズム (ハッシュとは対照的) です。
暗号化するパスワードごとにランダムな初期化ベクトル (IV) を生成し、キーと IV を暗号化されたパスワード バイトとは別に保存するように注意してください。
AES と Rijndael の違いを理解するには、チェックアウトしてください
http://blogs.msdn.com/b/shawnfa/archive/2006/10/09/the-differences-between-rijndael-and-aes.aspx
Rijndael と AES の公式 FIPS-197 仕様にはいくつかの違いがあります。
ユーザーごとに一意の IV を使用する必要があります。ただし、ユーザーごとのキーを格納すると、キー管理のシナリオが複雑になります。アプリケーション用に 1 つのキーと、ユーザーごとに IV をお勧めします。
IV は暗号文と一緒に保存できます。キーはデータベースの外部に保存する必要があります。
暗号化されたキーを web.config に保存できます。これを参照してください。