1

md5 ハッシュ ソルト アルゴリズムを実装しました。

このアルゴリズムを使用して、ハッシュ化されたパスワードとソルト値をデータベースに保存しました。次に、ログインページでログインユーザーのソルト値を取得し、パスワードのバイトを取得してソルト値と計算されたハッシュを追加し、結果を保存されたパスワードと照合しました。完全に機能していますが、パスワード値をクリアテキストで表示できますクライアント側で。

クライアント側でパスワード値を md5 ハッシュソルトアルゴリズムとともに暗号化するにはどうすればよいですか?

4

4 に答える 4

1

あなたはそれを正しい方法で行います。ソルトを知らずにクライアント側でパスワードをハッシュすることはできません (クライアントにソルトを渡すことはお勧めできません)。クライアントから送信されたデータを安全にしたい場合は、sslを使用してください。

注:able to see my password value in clear textデータは送信前にのみ暗号化されるため、ssl クライアントを使用する場合はそのままになります。

于 2012-10-16T07:02:20.167 に答える
0

テキストボックスに入力しているパスワードが心配な場合。次に、テキストボックスの TextMode を Password に変更します

このような

<asp:TextBox ID="txtPassword" runat="server" TextMode="Password"></asp:TextBox>
于 2012-10-16T07:08:27.437 に答える
0

これを解決するにはさまざまな方法がありますが、今思いつく最も簡単な方法は、何らかのチャレンジを使用することです。サーバーは、クライアントがソルトとして使用する必要がある値を送信します。サーバーは、値が一意であること、有効期限が切れていないこと、および 1 回だけ使用されることを保証します (これにより、リプレイ攻撃が不可能になります)。

これにより、プレーン テキストのパスワードは送信されず、ハッシュ化されたパスワードのみが送信されるようになります。「ワンタイムソルト」でハッシュを計算するにはクリアテキストパスワードが必要であるため、サーバーはクライアントを信頼できます(とにかくプレーンテキスト認証を行うときと同じくらい信頼します)。

もう 1 つのより洗練された (そして安全な) 方法は、サーバーが公開鍵を持ち、クライアントが秘密鍵を持つパスワードから RSA キーペアを生成することです。クライアントは、サーバーの公開鍵のコピーも持っています。ユーザーがパスワードを入力すると、正しいパスワードのみが正しい rsa-key を取得します。

次に、ユーザーはサーバーの公開鍵でリクエストを暗号化し、ユーザーの秘密鍵でリクエストに署名します。その後、サーバーのみが要求を復号化でき、サーバーはユーザーの公開鍵で署名を検証することにより、送信者が本当に正しいユーザーであることを検証できます。そして、応答の反対。セキュリティを追加するには、以前に書いたように、リプレイ攻撃が不可能であることを確認するために、独自の「ソルト」を追加する必要があります。

于 2012-10-16T07:22:03.970 に答える
0

データ保護 API (DPAPI)を使用して、パスワードをクライアント側に安全に保存できます。SafeString クラスを使用してパスワードをメモリに保存し、@PLB で既に述べたように、暗号化された接続を使用します。

于 2012-10-16T07:05:44.737 に答える