この記事は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人の最新の成果:光を使って脳の認知を変える
中国科学技術協会、中国科学院、中国工程院、浙江省人民政府、杭州市人民政府、浙江省人工知能開発専門委員...
[[399492]] Big Blue は、AI ベースのプログラミング ツール向けの充実したトレー...
現在、ロボット産業の急速な発展に伴い、ロボット製品システムはより完成度が高まり、その用途も多様化して...
近年、人工知能技術はコンピューティング能力、ビッグデータ、アルゴリズムの飛躍的進歩により急速に発展し...
[[261760]]詳細な宿題のレビューからバックオフィスの自動化まで、AI の進歩は今後 1 年間...
医療人工知能支援システムの構築加速に関する提案中国人民政治協商会議第12期全国委員会委員 郭光昌【提...
私たちは前例のない危機を生きています。 COVID-19パンデミックの間、医療従事者は最前線のヒーロ...
2018 年は過去のものとなりましたが、AI は依然として今年の主要なテクノロジー トレンドの 1...
今はお金を稼ぐのが難しく、ビジネスも簡単ではないと言う人もいますが、今こそ最高の時代だと言う人もいま...
[51CTO.com からのオリジナル記事] 2020 年 5 月 5 日午前 11 時 (東部夏時...
この記事では、主にニューラル ネットワークの普遍近似理論を紹介し、PyTorch を使用して 2 つ...
[[430184]]さまざまなアイテムの製造における 3D プリントの人気が高まるにつれ、特定の用途...