MD5 アルゴリズムとは
MD5 メッセージ ダイジェスト アルゴリズム (英語: MD5 Message-Digest Algorithm)。128 ビットのハッシュを生成できる、広く使用されている暗号化ハッシュ関数です。 16 バイトの値 (ハッシュ値) は、情報送信が完全かつ一貫していることを保証するために使用されます。
MD5 関数 (推奨学習: Web フロントエンド ビデオ チュートリアル)
任意の長さの情報を入力し、処理後の出力は 128 ビット情報 (デジタル指紋);
入力が異なると結果も異なります (一意性);
MD5 は暗号アルゴリズムに属さない
# 属さないと考える人は、暗号文 (ハッシュ値) から原文を取得できない、つまり、復号化アルゴリズムがないので、これらの人々は MD5 はアルゴリズムにのみ属するものであり、暗号化アルゴリズムとは言えないと考えています。 MD5処理、つまり原文が暗号化されているからMD5を暗号化アルゴリズムだと思っている、個人的には支持 前者はBASE64アルゴリズムを暗号化としか考えていないのと同じ。
MD5 アルゴリズムは可逆的ですか?MD5 が不可逆である理由は、MD5 がハッシュ関数であり、ハッシュ アルゴリズムを使用しているため、計算の過程で元の情報の一部が失われます。
ただし、MD5 の数には限りがあり、オリジナル テキストは無数に存在する可能性があるため、理論上、1 つの MD5 が実際に無数のオリジナル テキストに対応する可能性があることを指摘する価値があります。たとえば、主流の MD5 は、任意の長さの「バイト文字列」を 128 ビットの大きな整数にマップします。
つまり、合計 2^128 の可能性があり、これは約 3.4*10^38 になります。 . この数は有限です。しかし、世界中で暗号化に使用できる元のテキストの可能性は無数にあります。
しかし、注意すべき点が 1 つあります。これは理論上の有限対無限ではありますが、問題は次のとおりです。現実世界では、この無限大は完全には当てはまりません。現実には元のテキストの長さが制限されていることが多いためです (一般的に使用されるパスワードを例に挙げると、ほとんどの人は 20 桁以内です)。現在、2 つの元のテキストが同じに対応していることを確認したいと考えています MD5 値 (専門的にはハッシュ衝突と呼ばれます) を作成するのは非常に困難です。したがって、ある意味では 1 対 1 の対応関係を構築することは完全に可能ですMD5の値と原文の一定範囲内にあるため、現時点ではMD5が最も有効 攻撃方法はレインボーテーブル 詳細はGoogleで調べてください
MD5は非可逆に相当MD5 は
1 を使用します。改ざんの防止:
1) たとえば、電子文書を送信する場合、送信前に、まずMD5出力結果aを取得し、相手が電子文書を受け取った後、相手もMD5出力結果bを取得し、aとbが同じであれば、途中で改ざんされていないことを意味します。
2) たとえば、ファイルのダウンロードを提供すると、犯罪者がインストール プログラムにトロイの木馬を追加することを防ぐために、インストール ファイルを Web サイトで公開できます。取得した MD5 出力結果。
3) SVN は、チェックアウト後にファイルが変更されたかどうかを検出するときにも MD5 を使用します。
2. プレーン テキストの直接表示を防ぐには:
多くの Web サイトでは、現在、ユーザーのパスワードをデータベースに保存するときに、ユーザーのパスワードを削除することで、犯罪者がデータベース内のユーザーのパスワードの MD5 値を取得したとしても、ユーザーのパスワードを知ることはできません(たとえば、UNIX システムの場合)。 、ユーザーのパスワード MD5 (または他の同様のアルゴリズム) で暗号化され、ファイル システムに保存されます。
ユーザーがログインすると、システムはユーザーが入力したパスワードを MD5 値に計算し、ファイル システムに保存します。 システム内の MD5 値を比較して、入力されたパスワードが正しいかどうかを判断します。
このような手順を通じて、システムはクリア コードを知らなくても、ユーザーのシステムへのログインの正当性を判断できます。これにより、ユーザーのパスワードがシステム管理者権限を持つユーザーに知られるのを防ぐことができるだけでなく、パスワードクラッキングの難易度がある程度向上します。)
3. 否認の防止 (デジタル署名):
これにはサードパーティの認証機関が必要です。たとえば、A がドキュメントを作成すると、認証機関は MD5 アルゴリズムを使用してファイルの概要情報を生成し、記録を保持します。
後で A がその文書は自分が書いたものではないと述べた場合、当局はその文書の概要情報を再生成し、それを記録に記録されている概要情報と比較するだけで済みます。 Aが書いたものであることが証明されるだろう。これを「デジタル署名」と呼びます。 MD5 のセキュリティブルート フォース クラックにかかる時間は一般人には受け入れられないため、MD5 は非常に安全であると一般に考えられています。実際、ユーザーのパスワードが MD5 処理されてデータベースに保存される場合、非常に危険です。 ユーザーのパスワードは比較的短く、多くのユーザーのパスワードには誕生日、携帯電話番号、ID 番号、電話番号などが使用されているためです。または、一般的に使用される縁起の良い数字や英語の単語を使用します。最初に一般的に使用されるパスワードを MD5 し、データを保存してから、それを MD5 の結果と照合すると、平文が取得される可能性があります。たとえば、MD5 クラッキング Web サイト http://www.cmd5.com/default.aspx があるため、現在、ほとんどの Web サイトのパスワード ポリシーでは、パスワードを改善するためにユーザーに数字と大文字の組み合わせを使用するよう強制しています。ユーザーパスワードのセキュリティ。
以上がmd5暗号化アルゴリズムの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。