ユーザーログインと一緒にパスワードをハッシュし、データベースにVARBINARY20バイト長として保存しています。
今、私はasp.netでログインページを構築しようとしています。データベースからパスワード値を取得して、ユーザーが提供したものと比較するにはどうすればよいですか?SqlDataReaderを使用してデータベースを読み取ります。
よろしく、
バルトス
ユーザーログインと一緒にパスワードをハッシュし、データベースにVARBINARY20バイト長として保存しています。
今、私はasp.netでログインページを構築しようとしています。データベースからパスワード値を取得して、ユーザーが提供したものと比較するにはどうすればよいですか?SqlDataReaderを使用してデータベースを読み取ります。
よろしく、
バルトス
ログインしようとしているユーザーに応じてハッシュを取得できるように、これらをクリアテキストのユーザー名の列を含むテーブルに格納する必要があります。ハッシュされた入力をハッシュされて保存された入力と比較します。
データベースパスワードのハッシュを解除して、入力と比較することはありません。
入力をハッシュして、パスワードと比較します。2つのハッシュが一致する場合は、同じパスワード1であると見なします。
1技術的には、ハッシュ関数によってはそうではない場合があります。これは、ユーザーが実際のパスワードと同じ値にハッシュするパスワードをランダムに入力した可能性があるためですが、それは衒学的です;)
ユーザーが入力したパスワードに対して(初期ハッシュの作成に使用したのと同じアルゴリズムで)ハッシュを作成し、ハッシュが初期ハッシュと同じであるかどうかをデータベースで検索します->はい、同じパスワードでした
ハッシュの考え方は、返されない関数を持つことです->同じかどうかを確認することはできますが、入力データを再構築することはできません。
RBとして。つまり、データベースから渡されたハッシュを取得します。次に、ユーザーから提供されたパスワードを取得し、以前に使用したのと同じハッシュアルゴリズムを使用してハッシュします。データベースのハッシュコードが、ユーザーが入力したパスワードのハッシュコードと一致する場合、パスワードは正しいです。