私が検討しているコードベースでJWTがどのように実装されているかを理解しようとしています。私はthisとthis非対称暗号とJWT
を読んしかし、それはこのコードベースに思える、クライアントは秘密鍵と公開鍵を持っている...これは、サーバーと、自身の秘密鍵の公開鍵を持っている(私は、サーバーが対応する秘密を持っていると仮定しますキー)。なぜこれが必要ですか?クライアントは公開鍵だけを必要とし、サーバは秘密鍵を必要としませんか?クライアントがメッセージを暗号化している場合、公開鍵を使用して暗号化することはできず、サーバはそれを復号化するために秘密鍵を必要としますか?逆に、公開鍵を使用してサーバーから暗号化されたメッセージを復号することはできませんか?クライアントが公開鍵と秘密鍵の2つのセットを必要とするのはなぜですか?読み取りから
(例えば電子メールプログラムなどの)ソフトウェアに署名デジタル署名を作成する
は、署名されるべき電子データの一方向ハッシュを作成します。その後、ユーザーの秘密鍵を使用してハッシュを暗号化し、ハッシュされたデータに固有の値を返します。暗号化されたハッシュは、ハッシュアルゴリズムなどの他の情報と共に、デジタル署名を形成する。データの変更が1ビットであっても、異なるハッシュ値になります。この属性を使用すると、署名者の公開鍵を使用してハッシュを復号することによって、他人がデータの整合性を検証できます。解読されたハッシュが同じデータの2番目に計算されたハッシュと一致する場合、データが署名されてから変更されていないことが証明されます。
ハッシュ化されたデータと暗号化されたデータ間のdiffernceは何ですか?なぜ最初にハッシュする必要がありますか?ハッシュデータは暗号化されていますか?
ここで、secon計算されたハッシュはどこから来ますか?解読者が公開鍵を暗号化されたデータに適用しようとしている場合...それはどのように成功したのでしょうか?それはそれを何と比較していますか?その比較ハッシュはどこから来たのですか?
偉大な質問、よく、実際には1つの12の質問。 StackOverflowのための広すぎるIMO –
:(私には長いラブリー回答を受け入れるでしょうか? – Jwan622
一般に、StackOverflowのような場所で広範な質問が受け入れられないのはなぜですか? – Jwan622