この記事はWeChatの公開アカウント「Lean Coder」から転載したもので、著者はattuteiの別名です。この記事を転載する場合は、Lean Coder の公開アカウントにご連絡ください。 「MD5 暗号化」は単なる言葉です。MD5 は暗号化アルゴリズムではなく、ダイジェスト アルゴリズムです。 今日は、Xiaomajia が暗号化アルゴリズムとダイジェストアルゴリズムの定義とシナリオを整理します。 答えは次のとおりです。 暗号化アルゴリズムの目的は、他人が暗号化されたデータを閲覧できないようにし、必要に応じてデータを復号化して再度閲覧できるようにすることです。 MD5 アルゴリズムはハッシュ アルゴリズムです。ハッシュ アルゴリズム自体の設計目的により、ほとんどの場合、元に戻すことはできません。つまり、ハッシュ アルゴリズムを通じて取得したデータは、どのアルゴリズムでも復元できません。したがって、データを復元できないので、それを復号化と呼ぶことはできません。また、復号化できないので、ハッシュ処理を当然 [暗号化] と呼ぶことはできません。 暗号化アルゴリズム暗号化: 元の情報を特殊なアルゴリズムで変更し、権限のないユーザーが暗号化された情報を入手したとしても、復号化方法がわからないため、情報の内容を理解することはできません。 復号化: 暗号化の逆のプロセスが復号化であり、暗号化された情報を元の情報に変換するプロセスです。 暗号化アルゴリズムは、対称暗号化と非対称暗号化に分けられます。対称暗号化アルゴリズムの暗号化キーと復号化キーは同じですが、非対称暗号化と復号化キーは異なります。 HTTPS は非対称暗号化と対称暗号化の両方を使用します。接続確立フェーズでは、非対称暗号化と復号化が使用され (キーが閲覧されないように保護するため)、通信フェーズでは対称キーを使用してデータが暗号化および復号化されます。 ダイジェストアルゴリズム要約アルゴリズム。ハッシュ アルゴリズムまたはハッシュ アルゴリズムとも呼ばれます。関数を通じて、任意の長さのコンテンツが固定長のデータ文字列に変換されます。 ダイジェスト アルゴリズムがデータの改ざんの有無を判断できるのは、ダイジェスト関数が一方向関数であるためです。計算は簡単ですが、ダイジェストからデータを推測するのは非常に困難です。さらに、元のデータに少しでも変更を加えると、計算されたダイジェストはまったく異なるものになります。 Xunlei を使用して映画をダウンロードすると、ダウンロード サイトから MD5 検証コードも提供されます。 MD5 検証ツールを探し、ダウンロードしたファイルに対して MD5 アルゴリズムを実行し、得られたハッシュ値をダウンロードサイトに添付されている MD5 値と比較します。値が同じであれば、Web サイトからダウンロードしたファイルは破損していないことを意味します。 HMAC キーとハッシュ関数を組み合わせたリクエスト認証スキームについて説明します。 HMAC (ハッシュベースのメッセージ認証コード) 多くのサードパーティ プラットフォームは、この認可および認証スキームを使用しています。API プラットフォームを思い出してください。AppID 選択キーのペアが頻繁に提供されますか? 1. クライアントとサーバーの両方が秘密鍵を知っている 2. クライアントがリクエストを行うたびに、(リクエストデータ + 秘密鍵)のハッシュ値が生成される。 HMAC = hashFunc(秘密鍵 + メッセージ) 3. クライアントはリクエストの一部としてハッシュ値を送信する 4. サーバーはリクエストを受信すると、(受信したリクエスト + 検索された Serctkey) のハッシュを生成し、計算されたハッシュ値をリクエストに添付された元のハッシュ値と比較します。同じ場合、リクエストは信頼できるクライアントからのものであり、改ざんされていないと判断されます。 なぜこのようなことが起こるのでしょうか? まず、クライアントとサーバーのハッシュ値は同じです。ハッシュ アルゴリズムの元の設計によれば、これはリクエスト プロセスが改ざんされていないことを意味します。 一方、クライアントとサーバーは同じ Serct Key (これは個人情報です) を使用していると推測できるため、ここでクライアントから送信されたリクエストを拒否することはできません。 クライアントがハッシュを生成するときにタイムスタンプを追加することも検討できます (リクエストにもこのタイムスタンプが付随している必要があります)。サーバーはそれを受信した後、最初にサーバーのタイムスタンプとリクエストのタイムスタンプを比較し、有効なリクエストを 15 秒以内に制限します。次に、サーバーは (リクエスト メッセージ + 選択キー + タイムスタンプ) のハッシュを生成し、リプレイ攻撃を回避するためにハッシュを比較します。 要約するこの記事で紹介した例 (HTTPS、Thunder MD5 チェックサム) は、暗号化アルゴリズムとダイジェスト アルゴリズムの設計目的を理解するのに十分です。 暗号化アルゴリズムの目的は、情報が覗き見されるのを防ぐことです。ダイジェストアルゴリズムの目的は、情報が改ざんされるのを防ぐことです。 将来、それをより効果的に活用できるようになり、面接中に恥をかくこともなくなります。 最後に紹介するWebAPI認証スキームHMACは、キー+ハッシュアルゴリズムを組み合わせたアプリケーションシナリオであり、高速性と自己署名の特徴を備えています。 |
<<: オンラインゲームの依存症対策システムは「破られた」のか?記者調査:ネット上で「顔認証」サービスを提供、実名なしでゲームにログインできると主張
>>: 「思考スタンプ」が実現!中国とアメリカの科学者33人の最新の成果:光を使って脳の認知を変える
[51CTO.com オリジナル記事] 上司がラベルのない写真 10 万枚を渡して、サンダル、パンツ...
Facebook は最近、コンパイラ最適化タスクを実行するための高性能で使いやすい強化学習 (RL)...
ワインとチーズの組み合わせを識別するのに役立つアプリケーションを構築したいとします。最も優れたパフォ...
TechCrunchのウェブサイト、北京時間9月25日によると、多くの競合他社と同様に、Micro...
この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...
Twitter を使用すると、ユーザーはブログの投稿や記事を世界と共有できます。 Python と ...
AI は、従来のプロセスや従来のテクノロジーにまき散らされた魔法の精霊ではなく、ビジネスのやり方を根...
9月13日北京時間午前1時に行われたアップルの秋季製品発表イベントで、アップルの広報担当者はAI技術...
1. 背景近年、大規模言語モデル (LLM) の急速な発展により、人工知能は新たな高みに到達していま...
人工知能(AI)については多くの誇大宣伝がなされていますが、それは人類のこれまでの発明と同じくらい画...
インテリジェントな顧客サービスの分野は、2018 年に急速な発展を遂げました。企業の人件費を抑制する...