1

私の知る限り、ダイジェスト認証では、クライアントは、パスワードとサーバーから提供されたランダムな値を入力値として使用して、不可逆的な計算を実行します。結果は、同じ計算を実行し、クライアントが同じ値に到達した場合にクライアントを認証するサーバーに送信されます。計算は元に戻せないため、盗聴者はパスワードを取得できません。

上記の定義にCryptoJS.HmacSHA256("password", "key") 注意して、Javascriptで情報をdjangoサーバーに送信しましたが、問題は次のとおりです。

同じロジックを使用してサーバーで確認する必要がありますが、djangoはすでにパスワードを独自の形式でハッシュしています(たとえば、を使用しています) pbkdf2_sha256

AESのようなリバーシブルアルゴリズムを使用する必要がありますか?djangoのハッシュアルゴリズムを解読してクライアント側に同じものを書くことは不可能だと思いますか?

4

2 に答える 2

1

なぜこの方法で認証を行おうとしているのですか?これにdjangosのデフォルト認証を使用することはできません。

あなたができることは(例えば):

  1. 共有秘密キーとトークンを持つ、ユーザーにリンクされた新しいモデルを作成します
  2. 署名された値を受け入れ、署名された値を検証してから、ユーザーをログインさせる独自の認証バックエンドを作成します

この記事の詳細を使用して、アルゴリズムを実装しました。この方法を使用していない場合でも、独自のカスタム認証バックエンドを作成する必要があります。

于 2012-05-17T12:21:13.803 に答える
-1
  • AESはハッシュアルゴリズムではありません。これは暗号化アルゴリズムです。
  • SHA1やMD5などのハッシュアルゴリズムを使用できます。
于 2012-05-17T12:09:05.183 に答える