2012-02-14 9 views
3

私は何をする必要があるのか​​分かりませんでした。通常のログインシナリオ.iデータベースのパスワードのハッシュ値を格納しています。[何を使用するかハッシング関数を考慮しないでください。]時間 ユーザーは彼のプレーンテキストPassword.Nowを入力する必要が何をする必要がありますこのパスワードをハッシュ、Webサービスを渡す次に、私のデータベースバンクは、私が知っていない2 Hashed Values.Nowを比較する必要があります。Webサービスによる最前線認証

  1. 私はsalt.Isでログイン時にパスワードをハッシュするとき、それはまだ私が手に同じ値または何か他の

  2. が何を、2つのハッシュ値を比較するとしないように私のデータベース(Sql server 2008)はエイブル缶私はする必要があります。データベースからパスワードを取得する必要はありません。

  3. Webサービスでハッシュされたパスワードを渡すセキュリティの余分な考慮事項が必要ですか?私はパスワード回復を処理する必要が

は、私がここに暗号化/復号化アルゴリズムを使用することができますalso.and。
私は何が必要かを提案してください。

答えて

0

塩もデータベースに保存する必要があります。認証では 、saltを取得し、saltで入力されたパスワードをハッシュし、データベースのhased値と比較します。これらはすべてC#コードに存在します。

ハッシュ値から元のパスワードを取得することはできません。ランダムなパスワードを生成して、次のログイン時に顧客にパスワードを変更させることができます。

だから、ハッシュ値はオンラインで転送するのが安全だと思います。サイト管理者にとって、彼はデータベースにアクセスしても、依然として顧客のパスワードを知らない。

1

セキュリティを強化するには、ランダムな塩を使用する方がよいでしょう。

SQLサーバに格納しながら、私はパスワードを保護するために使用する方法は、次のとおりです。

は...その後、ユーザー名とパスワードの連結 とハッシュを生成し、パスワードから塩を作成

パスワードは、パスワードとユーザー名に依存します。パスワードを回復する場合は、資格情報が正しい場合は、パスワードをリセットすることができます。

私は暗号化/復号化アルゴリズム を使用できますか?

暗号化方法に応じて、.net暗号化ライブラリを使用してsaltでパスワードを暗号化および復号化する独自のアルゴリズムを作成します。