MD5とは?

MD5

フルスペル:Message Digest algorithm 5
読み方エムディーファイブ
別名:メッセージダイジェストアルゴリズム5

MD5とは、ハッシュ関数呼ばれる、あるデータから元の値とは異な数値を得ることができるアルゴリズム一種で、1991年マサチューセッツ工科大学リベストRonald Rivest教授によって考案されたアルゴリズムのことである。RFC 1321で規定されている。

MD5を利用すると、任意長のデータから128ビットハッシュ値メッセージダイジェスト)を出力することができる。32ビットマシンで高速処理ができるように設計されており、また、アルゴリズムコンパクトコード化できるという特徴持っている。MD5は、主にAPOPなどの電子メール認証や、デジタル署名などにおいて利用されている。

MD5は、リベスト教授によるMD4元に開発されている。なお、米国政府などで主に採用されているSHASecure Hash Algorithm)はMD4ベースとしている。


参照リンク
MD5 メッセージダイジェストアルゴリズム - (独立行政法人情報処理推進機構
セキュリティのほかの用語一覧
暗号化方式:  公開鍵  公開鍵暗号  公開鍵基盤  MD5  PCT  RC6  ROT13

md5

(PHP 4, PHP 5)
md5 — 文字列のmd5ハッシュ値を計算する

説明

string md5 ( string str [, bool raw_output] )
» RSA Data Security, Inc. の MD5メッセージダイジェストアルゴリズム を用いて strのMD5ハッシュ値を計算し、そのハッシュを 返します。このハッシュは、32文字の16進数となります。 オプションのraw_outputTRUEが指定された場 合、md5ダイジェストが16バイト長のバイナリ形式で返されます。
注意: オプションのraw_outputパラメータは、 PHP 5.0.0で追加され、デフォルトはFALSEです。
例 2274. md5() の例
<?php
$str = 'apple';

if (md5($str) === '1f3870be274f6c49b3e31a0c6728957f') {
   echo "Would you like a green or red apple?";
   exit;
}
?>


crc32()md5_file()sha1()も参照ください。

MD5 クラス

MD5 ハッシュ アルゴリズムすべての実装継承する、抽象クラスを表します。

名前空間: System.Security.Cryptography
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説

ハッシュ関数は、任意の長さバイナリ文字列固定長小さなバイナリ文字列割り当てます。暗号ハッシュ関数では、同じ値にハッシュされる 2 つの異な入力値を検出することが計算不可能です。つまり、2 組のデータハッシュは、対応するデータ一致している場合にだけ一致します。データを少し変更しただけでも、ハッシュ予測できないほど大幅変更されてしまいます。

MD5 アルゴリズムハッシュ サイズ128 ビットです。

MD5 クラスの ComputeHash メソッドは、16 バイト配列としてハッシュ返します。一部の MD5 実装では、32 文字16 進形式ハッシュ生成します。このような実装相互運用するには、ComputeHash メソッド戻り値16 進値として形式指定します。

使用例使用

文字列MD5 ハッシュ値計算し、32 文字16 進形式の文字列としてハッシュ返すコード例を次に示します。このコード例で作成されるハッシュ文字列は、32 文字16 進形式ハッシュ文字列作成する (任意のプラットフォーム上の) MD5 ハッシュ関数互換性あります

Imports System
Imports System.Security.Cryptography
Imports System.Text

Module Example

    ' Hash an input string and return the hash as
    ' a 32 character hexadecimal string.
    Function getMd5Hash(ByVal input As
 String) As String
        ' Create a new instance of the MD5 object.
        Dim md5Hasher As MD5 = MD5.Create()

        ' Convert the input string to a byte array and compute the hash.
        Dim data As Byte()
 = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input))

        ' Create a new Stringbuilder to collect the bytes
        ' and create a string.
        Dim sBuilder As New
 StringBuilder()

        ' Loop through each byte of the hashed data 
        ' and format each one as a hexadecimal string.
        Dim i As Integer
        For i = 0 To data.Length - 1
            sBuilder.Append(data(i).ToString("x2"))
        Next i

        ' Return the hexadecimal string.
        Return sBuilder.ToString()

    End Function


    ' Verify a hash against a string.
    Function verifyMd5Hash(ByVal input As
 String, ByVal hash As
 String) As Boolean
        ' Hash the input.
        Dim hashOfInput As String
 = getMd5Hash(input)

        ' Create a StringComparer an comare the hashes.
        Dim comparer As StringComparer = StringComparer.OrdinalIgnoreCase

        If 0 = comparer.Compare(hashOfInput, hash) Then
            Return True
        Else
            Return False
        End If

    End Function



    Sub Main()
        Dim source As String
 = "Hello World!"

        Dim hash As String
 = getMd5Hash(source)

        Console.WriteLine("The MD5 hash of " + source
 + " is: " + hash + ".")

        Console.WriteLine("Verifying the hash...")

        If verifyMd5Hash(source, hash) Then
            Console.WriteLine("The hashes are the same.")
        Else
            Console.WriteLine("The hashes are not same.")
        End If

    End Sub
End Module
' This code example produces the following output:
'
' The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
' Verifying the hash...
' The hashes are the same.
using System;
using System.Security.Cryptography;
using System.Text;

class Example
{
    // Hash an input string and return the hash as
    // a 32 character hexadecimal string.
    static string getMd5Hash(string
 input)
    {
        // Create a new instance of the MD5CryptoServiceProvider object.
        MD5 md5Hasher = MD5.Create();

        // Convert the input string to a byte array and compute the
 hash.
        byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(input));

        // Create a new Stringbuilder to collect the bytes
        // and create a string.
        StringBuilder sBuilder = new StringBuilder();

        // Loop through each byte of the hashed data 
        // and format each one as a hexadecimal string.
        for (int i = 0; i < data.Length;
 i++)
        {
            sBuilder.Append(data[i].ToString("x2"));
        }

        // Return the hexadecimal string.
        return sBuilder.ToString();
    }

    // Verify a hash against a string.
    static bool verifyMd5Hash(string
 input, string hash)
    {
        // Hash the input.
        string hashOfInput = getMd5Hash(input);

        // Create a StringComparer an comare the hashes.
        StringComparer comparer = StringComparer.OrdinalIgnoreCase;

        if (0 == comparer.Compare(hashOfInput, hash))
        {
            return true;
        }
        else
        {
            return false;
        }
    }


    static void Main()
    {
        string source = "Hello World!";
        
        string hash = getMd5Hash(source);

        Console.WriteLine("The MD5 hash of " + source + " is: "
 + hash + ".");

        Console.WriteLine("Verifying the hash...");

        if (verifyMd5Hash(source, hash))
        {
            Console.WriteLine("The hashes are the same.");
        }
        else
        {
            Console.WriteLine("The hashes are not same.");
        }
        
    }
}
// This code example produces the following output:
//
// The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
// Verifying the hash...
// The hashes are the same.
継承階層継承階層
System.Object
   System.Security.Cryptography.HashAlgorithm
    System.Security.Cryptography.MD5
       System.Security.Cryptography.MD5CryptoServiceProvider
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

MD5 コンストラクタ


MD5 フィールド


プロテクト フィールドプロテクト フィールド

  名前 説明
プロテクト フィールド HashSizeValue  計算されたハッシュ コードサイズビット単位で表します。 ( HashAlgorithm から継承されます。)
プロテクト フィールド HashValue  計算されたハッシュ コードの値を表します。 ( HashAlgorithm から継承されます。)
プロテクト フィールド State  ハッシュ計算の状態を表します。 ( HashAlgorithm から継承されます。)
参照参照

MD5 プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ CanReuseTransform  現在の変換再利用できるかどうかを示す値を取得します。 ( HashAlgorithm から継承されます。)
パブリック プロパティ CanTransformMultipleBlocks  派生クラスオーバーライドされると、複数ブロック変換できるかどうかを示す値を取得します。 ( HashAlgorithm から継承されます。)
パブリック プロパティ Hash  計算されたハッシュ コードの値を取得します。 ( HashAlgorithm から継承されます。)
パブリック プロパティ HashSize  計算されたハッシュ コードサイズビット単位取得します。 ( HashAlgorithm から継承されます。)
パブリック プロパティ InputBlockSize  派生クラスオーバーライドされると、入力ブロック サイズ取得します。 ( HashAlgorithm から継承されます。)
パブリック プロパティ OutputBlockSize  派生クラスオーバーライドされると、出力ブロック サイズ取得します。 ( HashAlgorithm から継承されます。)
参照参照

MD5 メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Clear  HashAlgorithm クラスによって使用されているすべてのリソース解放します。 ( HashAlgorithm から継承されます。)
パブリック メソッド ComputeHash  オーバーロードされます。 入力データハッシュ値計算します。 ( HashAlgorithm から継承されます。)
パブリック メソッド Create オーバーロードされます。 この抽象クラス特定の実装作成できるようにします。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド Initialize  HashAlgorithm クラス実装初期化します。 ( HashAlgorithm から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
パブリック メソッド TransformBlock  入力バイト配列指定した領域ハッシュ値計算し、結果ハッシュ値出力バイト配列指定した領域コピーします。 ( HashAlgorithm から継承されます。)
パブリック メソッド TransformFinalBlock  指定たバイト配列指定した領域ハッシュ値計算します。 ( HashAlgorithm から継承されます。)
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド Dispose  HashAlgorithm によって使用されているアンマネージ リソース解放し、オプションマネージ リソース解放します。 ( HashAlgorithm から継承されます。)
プロテクト メソッド Finalize  Objectガベージ コレクションにより収集される前に、その Objectリソース解放し、その他のクリーンアップ操作実行できるようにします。 ( Object から継承されます。)
プロテクト メソッド HashCore  派生クラスオーバーライドされると、ハッシュ計算するために、オブジェクト書き込まれたデータハッシュ アルゴリズムルーティングします。 ( HashAlgorithm から継承されます。)
プロテクト メソッド HashFinal  派生クラスオーバーライドされると、暗号ストリーム オブジェクトによって最後データが処理された後に、ハッシュ計算終了します。 ( HashAlgorithm から継承されます。)
プロテクト メソッド MemberwiseClone  現在の Object簡易コピー作成します。 ( Object から継承されます。)
参照参照

MD5 メンバ

MD5 ハッシュ アルゴリズムすべての実装継承する、抽象クラスを表します。

MD5 データ型公開されるメンバを以下の表に示します。


プロテクト コンストラクタプロテクト コンストラクタ
  名前 説明
プロテクト メソッド MD5 MD5新しインスタンス初期化します。
プロテクト フィールドプロテクト フィールド
  名前 説明
プロテクト フィールド HashSizeValue  計算されたハッシュ コードサイズビット単位で表します。(HashAlgorithm から継承されます。)
プロテクト フィールド HashValue  計算されたハッシュ コードの値を表します。(HashAlgorithm から継承されます。)
プロテクト フィールド State  ハッシュ計算の状態を表します。(HashAlgorithm から継承されます。)
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ CanReuseTransform  現在の変換再利用できるかどうかを示す値を取得します。(HashAlgorithm から継承されます。)
パブリック プロパティ CanTransformMultipleBlocks  派生クラスオーバーライドされると、複数ブロック変換できるかどうかを示す値を取得します。(HashAlgorithm から継承されます。)
パブリック プロパティ Hash  計算されたハッシュ コードの値を取得します。(HashAlgorithm から継承されます。)
パブリック プロパティ HashSize  計算されたハッシュ コードサイズビット単位取得します。(HashAlgorithm から継承されます。)
パブリック プロパティ InputBlockSize  派生クラスオーバーライドされると、入力ブロック サイズ取得します。(HashAlgorithm から継承されます。)
パブリック プロパティ OutputBlockSize  派生クラスオーバーライドされると、出力ブロック サイズ取得します。(HashAlgorithm から継承されます。)
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Clear  HashAlgorithm クラスによって使用されているすべてのリソース解放します。 (HashAlgorithm から継承されます。)
パブリック メソッド ComputeHash  オーバーロードされます。 入力データハッシュ値計算します。 (HashAlgorithm から継承されます。)
パブリック メソッド Create オーバーロードされます。 この抽象クラス特定の実装作成できるようにします。
パブリック メソッド Equals  オーバーロードされます。 2 つの Object インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド Initialize  HashAlgorithm クラス実装初期化します。 (HashAlgorithm から継承されます。)
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
パブリック メソッド TransformBlock  入力バイト配列指定した領域ハッシュ値計算し、結果ハッシュ値出力バイト配列指定した領域コピーします。 (HashAlgorithm から継承されます。)
パブリック メソッド TransformFinalBlock  指定たバイト配列指定した領域ハッシュ値計算します。 (HashAlgorithm から継承されます。)
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド Dispose  HashAlgorithm によって使用されているアンマネージ リソース解放し、オプションマネージ リソース解放します。 (HashAlgorithm から継承されます。)
プロテクト メソッド Finalize  Objectガベージ コレクションにより収集される前に、その Objectリソース解放し、その他のクリーンアップ操作実行できるようにします。 (Object から継承されます。)
プロテクト メソッド HashCore  派生クラスオーバーライドされると、ハッシュ計算するために、オブジェクト書き込まれたデータハッシュ アルゴリズムルーティングします。 (HashAlgorithm から継承されます。)
プロテクト メソッド HashFinal  派生クラスオーバーライドされると、暗号ストリーム オブジェクトによって最後データが処理された後に、ハッシュ計算終了します。 (HashAlgorithm から継承されます。)
プロテクト メソッド MemberwiseClone  現在の Object簡易コピー作成します。 (Object から継承されます。)
参照参照

MD5

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2019/04/12 15:18 UTC 版)

MD5(エムディーファイブ、: message digest algorithm 5)は、暗号学的ハッシュ関数のひとつである。ハッシュ値は128ビット。






「MD5」の続きの解説一覧



固有名詞の分類


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「MD5」の関連用語

MD5のお隣キーワード

   

英語⇒日本語
日本語⇒英語
   
検索ランキング



MD5のページの著作権
Weblio 辞書情報提供元は参加元一覧にて確認できます。

  
JMCJMC
2019 (C) JMC Corpyright All Rights Reserved
株式会社ジェイエムシー情報セキュリティ用語集
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2019 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリMD5の記事を利用しております。
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2019 by the PHP Documentation Group.
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2019 Microsoft.All rights reserved.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのMD5 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2019 Weblio RSS