3

アプリのテスト中に、ユーザーがパスワードを忘れた場合にアプリケーション内にアクセスする機能がないことが確認されました。

これを発見すると、次のようなパスワード生成手法を実装しました。 1. ユーザー情報を使用して特定の文字列を作成します。2. 文字列に SHA1 を適用する 3. SHA1 ハッシュの一部をパスワードとして取得する

上記のアルゴリズムは、サーバー側とデバイス側の両方に適用されます。そのため、相互作用する必要はありません。したがって、ユーザーがパスワードを忘れた場合でも、サーバーにリクエストできます。サーバーは上記のアルゴリズムを実行し、生成されたパスワードをユーザーの電子メールに送信します。デバイス側では、同じアルトを使用して同じパスワードが生成されます。したがって、ユーザーが入力すると一致し、ユーザーにアクセス権が付与されます。

パスワードを生成するために同じ文字列を使用しているため、どういうわけか私はこれに満足していません. そのため、ユーザーがパスワードを忘れて生成するたびに、同じパスワードが取得されますが、これはパスワード ジェネレーターの動作とは異なります。

そのため、変数になる文字列にさらに追加することを考えていましたが、サーバー側とデバイス側の両方で同じになります。オプションの 1 つは文字列で日付を使用することですが、サーバーが異なるタイム ゾーンのデバイスにある場合、サーバーは異なるパスワードを生成します。

これに対するより良い解決策はありますか?提案してください ...

4

1 に答える 1

1

「ハッシュベースのメッセージ認証コード」( HMAC )を使用したいようです。この背後にある考え方は、プレーンテキスト接続でも、ユーザー名、パスワード、およびサーバーで生成された「セッションキー」を使用して、セッションキーが変更されるたびに変更されるハッシュを生成するため、ユーザーのパスワードは表示されないということです。ハッシュが一方向であるため、ネットワーク接続を介して送信されたハッシュからユーザーのパスワードを取得することは不可能です。

太陽の下で新しいものは何もありません。

于 2013-02-25T07:44:07.283 に答える