背景
ユーザーのパスワードを知っている必要はありません。着信ユーザーがアカウントのパスワードを知っていることを確認したいだけです。
Hash It:
強力なハッシュ関数を介してハッシュされたユーザーパスワード(一方向暗号化)を保存します。「c#暗号化パスワード」を検索すると、多くの例が表示されます。
ハッシュ関数が生成するものについては、オンラインのSHA1ハッシュクリエーターを参照してください(ただし、ハッシュ関数としてSHA1を使用しないでください。SHA256などの強力なものを使用してください)。
ハッシュ化されたパスワードは、あなた(およびデータベースの泥棒)がそのハッシュを元のパスワードに戻すことができないことを意味します。
使用方法:
しかし、あなたは、データベースに保存されているこのマッシュアップされたパスワードをどのように使用するのですか?
ユーザーがログインすると、ユーザー名とパスワードが(元のテキストで)渡されます。同じハッシュコードを使用して、入力したパスワードをハッシュし、保存されているバージョンを取得します。
したがって、2つのハッシュされたパスワードを比較します(ユーザー名のデータベースハッシュと入力されたハッシュされたパスワード)。ハッシュを比較することで、「ユーザーが入力した内容」が「元のユーザーがパスワードに入力した内容」と一致したかどうかを確認できます。
追加クレジット:
質問:私のデータベースがあったら、John the Ripperのようなクラッカーを使って、保存されているハッシュ化されたパスワードと一致するものが見つかるまで、ハッシュを作成することはできませんか?(ユーザーはとにかく短い辞書の単語を選ぶので...それは簡単なはずです)
回答:はい...はい、できます。
したがって、パスワードを「ソルト」する必要があります。塩に関するウィキペディアの記事を参照してください
「ソルトを使用してデータをハッシュする方法」のC#の例を参照してください。