MD5CryptoServiceProvider 클래스

정의

CSP(암호화 서비스 공급자)가 제공하는 구현을 사용하는 입력 데이터에 대해 MD5 해시 값을 계산합니다.Computes the MD5 hash value for the input data using the implementation provided by the cryptographic service provider (CSP). 이 클래스는 상속될 수 없습니다.This class cannot be inherited.

public ref class MD5CryptoServiceProvider sealed : System::Security::Cryptography::MD5
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class MD5CryptoServiceProvider : System.Security.Cryptography.MD5
type MD5CryptoServiceProvider = class
    inherit MD5
Public NotInheritable Class MD5CryptoServiceProvider
Inherits MD5
상속
MD5CryptoServiceProvider
특성

예제

다음 코드 예제에서는 계산 된 MD5 해시 값에 대 한 data 반환 합니다.The following code example computes the MD5 hash value for data and returns it.

private:
   array<Byte>^ MD5hash( array<Byte>^data )
   {
      // This is one implementation of the abstract class MD5.
      MD5^ md5 = gcnew MD5CryptoServiceProvider;

      array<Byte>^ result = md5->ComputeHash( data );

      return result;
   }
byte[] MD5hash (byte[] data)
 {
    // This is one implementation of the abstract class MD5.
    MD5 md5 = new MD5CryptoServiceProvider();

    byte[] result = md5.ComputeHash(data);

    return result;
 }
Function MD5hash(data() As Byte) As Byte()
    ' This is one implementation of the abstract class MD5.
    Dim md5 As New MD5CryptoServiceProvider()
       
    Dim result As Byte() = md5.ComputeHash(data)
       
    Return result
End Function

다음 코드 예제에서는 계산을 MD5 문자열의 해시 값의 해시를 32 자리 16 진수 형식 문자열로 반환 합니다.The following code example computes the MD5 hash value of a string and returns the hash as a 32-character, hexadecimal-formatted string. 이 코드 예제에서 만든 해시 문자열 모든 MD5 해시 (모든 플랫폼)에서 만드는 함수를 32 자리 16 진수 형식의 해시 문자열 호환 됩니다.The hash string created by this code example is compatible with any MD5 hash function (on any platform) that creates a 32-character, hexadecimal-formatted hash string.

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.
        MD5CryptoServiceProvider md5Hasher = new MD5CryptoServiceProvider();

        // 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 compare 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.
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 MD5CryptoServiceProvider object.
        Dim md5Hasher As New MD5CryptoServiceProvider()

        ' 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 compare 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.

설명

해시 함수 맵 이진 문자열 길이가 고정 된 작은 이진 문자열에는 임의 길이의입니다.Hash functions map binary strings of an arbitrary length to small binary strings of a fixed length. 암호화 해시 함수에 같은 값으로 해시 되는 두 가지 입력을 찾으려는 상 아님을 하는 속성이 있습니다. 즉, 해당 데이터도 일치 하는 경우 두 개의 데이터 집합의 해시 일치 해야 합니다.A cryptographic hash function has the property that it is computationally infeasible to find two distinct inputs that hash to the same value; that is, hashes of two sets of data should match if the corresponding data also matches. 해시에서 대규모의 예기치 않은 변경 사항을 데이터 결과를 약간 변경 합니다.Small changes to the data result in large, unpredictable changes in the hash.

참고

보안 해시 알고리즘 SHA-256 및 SHA-512와 같은 최신 해시 함수는 사용할 수 있습니다.Newer hash functions such as the Secure Hash Algorithms SHA-256 and SHA-512 are available. 사용을 고려 합니다 SHA256 클래스 또는 SHA512 클래스 대신는 MD5CryptoServiceProvider 클래스.Consider using the SHA256 class or the SHA512 class instead of the MD5CryptoServiceProvider class. 사용 하 여 MD5CryptoServiceProvider 레거시 애플리케이션 및 데이터를 사용 하 여 호환성을 위해서만 합니다.Use MD5CryptoServiceProvider only for compatibility with legacy applications and data.

에 대 한 해시 크기를 MD5CryptoServiceProvider 클래스는 128 비트입니다.The hash size for the MD5CryptoServiceProvider class is 128 bits.

합니다 ComputeHash 의 메서드는 MD5CryptoServiceProvider 클래스 16 바이트의 배열로 해시를 반환 합니다.The ComputeHash methods of the MD5CryptoServiceProvider class return the hash as an array of 16 bytes. 일부 MD5 구현은 32 자리 16 진수 형식의 해시를 생성 하는 참고 합니다.Note that some MD5 implementations produce a 32-character, hexadecimal-formatted hash. 이러한 구현을 사용 하 여 상호 운용, 반환 값의 형식을 ComputeHash 메서드 16 진수 값입니다.To interoperate with such implementations, format the return value of the ComputeHash methods as a hexadecimal value.

생성자

MD5CryptoServiceProvider()

MD5CryptoServiceProvider 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the MD5CryptoServiceProvider class.

필드

HashSizeValue

계산된 해시 코드의 크기(비트)를 나타냅니다.Represents the size, in bits, of the computed hash code.

(다음에서 상속됨 HashAlgorithm)
HashValue

계산된 해시 코드의 값을 나타냅니다.Represents the value of the computed hash code.

(다음에서 상속됨 HashAlgorithm)
State

해시 계산의 상태를 나타냅니다.Represents the state of the hash computation.

(다음에서 상속됨 HashAlgorithm)

속성

CanReuseTransform

현재 변형을 다시 사용할 수 있는지 여부를 나타내는 값을 가져옵니다.Gets a value indicating whether the current transform can be reused.

(다음에서 상속됨 HashAlgorithm)
CanTransformMultipleBlocks

파생 클래스에서 재정의된 경우 여러 개의 블록을 변형할 수 있는지 여부를 나타내는 값을 가져옵니다.When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed.

(다음에서 상속됨 HashAlgorithm)
Hash

계산된 해시 코드의 값을 가져옵니다.Gets the value of the computed hash code.

(다음에서 상속됨 HashAlgorithm)
HashSize

계산된 해시 코드의 크기(비트 단위)를 가져옵니다.Gets the size, in bits, of the computed hash code.

(다음에서 상속됨 HashAlgorithm)
InputBlockSize

파생 클래스에 재정의된 경우 입력 블록 크기를 가져옵니다.When overridden in a derived class, gets the input block size.

(다음에서 상속됨 HashAlgorithm)
OutputBlockSize

파생 클래스에 재정의된 경우 출력 블록 크기를 가져옵니다.When overridden in a derived class, gets the output block size.

(다음에서 상속됨 HashAlgorithm)

메서드

Clear()

HashAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the HashAlgorithm class.

(다음에서 상속됨 HashAlgorithm)
ComputeHash(Byte[])

지정된 바이트 배열에 대해 해시 값을 계산합니다.Computes the hash value for the specified byte array.

(다음에서 상속됨 HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

지정된 바이트 배열의 지정된 영역에 대해 해시 값을 계산합니다.Computes the hash value for the specified region of the specified byte array.

(다음에서 상속됨 HashAlgorithm)
ComputeHash(Stream)

지정된 Stream 개체에 대해 해시 값을 계산합니다.Computes the hash value for the specified Stream object.

(다음에서 상속됨 HashAlgorithm)
Dispose()

HashAlgorithm 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.Releases all resources used by the current instance of the HashAlgorithm class.

(다음에서 상속됨 HashAlgorithm)
Dispose(Boolean)

HashAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

(다음에서 상속됨 HashAlgorithm)
Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
Finalize()
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
HashCore(Byte[], Int32, Int32)

파생 클래스에 재정의된 경우 개체에 쓰여진 데이터의 경로를 해시를 계산할 해시 알고리즘에 지정합니다.When overridden in a derived class, routes data written to the object into the hash algorithm for computing the hash.

(다음에서 상속됨 HashAlgorithm)
HashCore(ReadOnlySpan<Byte>) (다음에서 상속됨 HashAlgorithm)
HashFinal()

파생 클래스에서 재정의된 경우 암호화 스트림 개체에서 마지막 데이터를 처리한 후 해시 계산을 완료합니다.When overridden in a derived class, finalizes the hash computation after the last data is processed by the cryptographic stream object.

(다음에서 상속됨 HashAlgorithm)
Initialize()

MD5CryptoServiceProvider의 인스턴스를 초기화합니다.Initializes an instance of MD5CryptoServiceProvider.

MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

입력 바이트 배열의 지정된 영역에 대한 해시 값을 계산하여 입력 바이트 배열의 지정된 영역을 출력 바이트 배열의 지정된 영역에 복사합니다.Computes the hash value for the specified region of the input byte array and copies the specified region of the input byte array to the specified region of the output byte array.

(다음에서 상속됨 HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

지정된 바이트 배열의 지정된 영역에 대해 해시 값을 계산합니다.Computes the hash value for the specified region of the specified byte array.

(다음에서 상속됨 HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) (다음에서 상속됨 HashAlgorithm)
TryHashFinal(Span<Byte>, Int32) (다음에서 상속됨 HashAlgorithm)

명시적 인터페이스 구현

IDisposable.Dispose()

HashAlgorithm에서 사용하는 관리되지 않는 리소스를 해제하고, 관리되는 리소스를 선택적으로 해제할 수 있습니다.Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources.

(다음에서 상속됨 HashAlgorithm)

적용 대상

추가 정보