본문 바로가기
프로그래밍/Unity

MD5 클래스

by 뽀도 2015. 6. 9.

[출처 : https://msdn.microsoft.com/ko-kr/library/system.security.cryptography.md5(v=vs.110).aspx] 


MD5란?

128비트 암호화 해시 함수이다. 주로 프로그램이나 파일이 원본 그대로인지를 확인하는 무결성 검사등에 사용된다.

[ 출처 : http://ko.wikipedia.org/wiki/MD5 ]




MD5 클래스 

:  MD5 해시 알고리즘의 모든 구현이 상속될 추상 클래스를 나타냅니다.




ClearHashAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다. (HashAlgorithm에서 상속됨)
Public 메서드정적 멤버Create()MD5 해시 알고리즘의 기본 구현 인스턴스를 만듭니다.
Public 메서드정적 멤버Create(String)MD5 해시 알고리즘의 지정된 구현의 인스턴스를 만듭니다.


using System;
using System.Security.Cryptography;
using System.Text;

namespace MD5Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            string source = "Hello World!";
            using (MD5 md5Hash = MD5.Create())
            {
                string hash = GetMd5Hash(md5Hash, source);

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

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

                if (VerifyMd5Hash(md5Hash, source, hash))
                {
                    Console.WriteLine("The hashes are the same.");
                }
                else
                {
                    Console.WriteLine("The hashes are not same.");
                }
            }



        }
        static string GetMd5Hash(MD5 md5Hash, string input)
        {

            // Convert the input string to a byte array and compute the hash.
            byte[] data = md5Hash.ComputeHash(Encoding.UTF8.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(MD5 md5Hash, string input, string hash)
        {
            // Hash the input.
            string hashOfInput = GetMd5Hash(md5Hash, input);

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

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

    }
}

// This code example produces the following output:
//
// The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
// Verifying the hash...
// The hashes are the same.


반응형

'프로그래밍 > Unity' 카테고리의 다른 글

유니티 파일 외부 프로그램 사용해서 연결하기.  (0) 2015.06.11
TimeSpan 구조체  (0) 2015.06.10
StreamReader 클래스  (0) 2015.06.09
[c#] Base 키워드  (0) 2015.06.08
What is the difference between a thread and fiber?  (0) 2015.06.04

댓글