2011-05-03 5 views
4

C#에서 임의의 Md5 해시 값을 생성하는 방법은 무엇입니까?C# 임의의 Md5 해시 생성

+3

임의의 문자열을 생성 - 그것을 위해 MD5를 생성합니다. 그런데 왜 그런 것을 원하니? 유일한 ID를 원하면'Guid'를 사용하십시오 – Stecya

+0

임의의 문자열을 만드는 방법은 무엇입니까? – Sudantha

+0

왜 누군가가 임의의 MD5 해시를 생성해야합니까? 길이가 128 인 임의의 문자열은 임의의 md5 해시가 될 수 있습니다 (적어도 같음). – crypted

답변

12

Guid.NewGuid()을 사용하여 임의의 문자열을 만들고 MD5 체크섬을 생성하십시오.

+0

Guid는 128 비트 임의 값이지만 6 비트가 미리 정의됩니다. 따라서 해싱을 한 후에도 2^122 개의 해시 값만 있습니다. RNGCryptoServiceProvider를 사용하면 2^128 값을 모두 가질 수 있습니다. 사실 Guid는 내부적으로 RNGCryptoServiceProvider도 사용합니다. – Artemix

17

임의의 MD5 해시 값은 사실상 128 비트 암호 강도 난수입니다.

var bytes = new byte[16]; 
using (var rng = new RNGCryptoServiceProvider()) 
{ 
    rng.GetBytes(bytes); 
} 

// and if you need it as a string... 
string hash1 = BitConverter.ToString(bytes); 

// or maybe... 
string hash2 = BitConverter.ToString(bytes).Replace("-", "").ToLower(); 

+0

감사합니다. 나는 'Guid'를 사용했습니다. – Sudantha

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

    public static string ConvertStringtoMD5(string strword) 
{ 
    MD5 md5 = MD5.Create(); 
    byte[] inputBytes = System.Text.Encoding.ASCII.GetBytes(strword); 
    byte[] hash = md5.ComputeHash(inputBytes); 
    StringBuilder sb = new StringBuilder(); 
     for (int i = 0; i < hash.Length; i++) 
     { 
      sb.Append(hash[i].ToString("x2")); 
     } 
     return sb.ToString(); 
} 

블로그 기사 : How to convert string into MD5 hash?