참고 URL
http://support.microsoft.com/kb/307010/ko
Md5
http://www.hoons.kr/Lectureview.aspx?key=Lecture&LECCATE_IDX=26&ref=1&lecture_idx=45
SHA1
http://msdn2.microsoft.com/ko-kr/library/system.security.cryptography.sha1(VS.80).aspx
MD5 클래스
MD5 해시 알고리즘의 모든 구현이 상속될 추상 클래스를 나타냅니다.
네임스페이스: System.Security.Cryptography
어셈블리: mscorlib(mscorlib.dll)
해시 함수는 임의의 길이의 이진 문자열을 고정된 길이의 작은 이진 문자열에 매핑합니다. 암호화 해시 함수는 동일한 값에 해시하는 두 개의 다른 입력을 연산적으로 찾지 못하는 속성, 즉 해당 데이터가 일치하면 두 집합의 데이터 해시도 일치하는 속성을 갖습니다. 데이터에 작은 변경이 있으면 해시에 예측할 수 없는 커다란 변경이 발생합니다.
MD5 알고리즘에 대한 해시 크기는 128비트입니다.
MD5 클래스의 :Track('ctl00_rs1_mainContentContainer_cpe58026_c|ctl00_rs1_mainContentContainer_ctl20',this);" href="http://msdn2.microsoft.com/ko-kr/library/tessz10c(VS.80).aspx">
ComputeHash 메서드는 해시를 16바이트 배열로 반환합니다. 일부 MD5 구현에서는 32자로 된 16진수 형식의 해시를 생성합니다. 이러한 구현을 사용하려면 ComputeHash 메서드의 반환 값 형식을 16진수 값으로 지정합니다.
예제
다음 코드 예제에서는 문자열의 MD5 해시 값을 계산하고 해시를 32자로 된 16진수 형식의 문자열로 반환합니다. 이 코드 예제에서 만든 해시 문자열은 모든 플랫폼에서 32자로 된 16진수 형식의 해시 문자열을 만드는 모든 MD5 해시 함수와 호환됩니다
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.
-------------------------------------------------------------------------------------------------------------------
string hashedPassword = FormsAuthentication.HashPasswordForStoringInConfigFile(password.Text, "MD5"); Response.Write(hashedPassword)
--------------------------------------------------------------------------------------------------------------------
MD5 md5Hasher = MD5.Create(); byte[] data = md5Hasher.ComputeHash(Encoding.Default.GetBytes(this.password.Text)); StringBuilder sBuilder = new StringBuilder(); for (int i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2")); } // Return the hexadecimal string. Response.Write("<br>md5Hasher=" + sBuilder.ToString().ToUpper() );
위의 두개는 결과값이 같습니다. 편한걸로 쓰세요
SHA1 클래스
입력 데이터에 대한 SHA1 해시를 계산합니다.
byte[] data = new byte[DATA_SIZE];
byte[] result;
SHA1 sha = new SHA1CryptoServiceProvider();
// This is one implementation of the abstract class SHA1.
result = sha.ComputeHash(data);
'ASP.NET AJAX' 카테고리의 다른 글
[ GridView ] DataKeys , RowDataBound (데이터바인딩)간단한 사용법 (0) | 2010.06.01 |
---|---|
[ GridView,그리드뷰 ]페이징(page) 디자인 꾸미기 (0) | 2010.06.01 |
[ FilterExpression,FilterParameters , 다중검색 ] 두개이상 검색할때... (0) | 2010.06.01 |
[마스터 페이지, masterpage] 에서 유저컨트롤 안에 접근하기 (0) | 2010.06.01 |
[마스터페이지 , masterpage ] PreviousPage 마스터페이지 컨트롤러에 접근 (0) | 2010.06.01 |
[PostBackTrigger ]업데이트 판넬 에서 파일 업로드 (0) | 2010.06.01 |
엔터키 및 행선택으로 클릭하기 (0) | 2010.06.01 |
MVC 1.0 튜토리얼 PDF 받기 (0) | 2010.03.22 |
[MSDN]AJAX Extensions를 사용한 클라이언트측 웹 서비스 호출 (0) | 2010.02.04 |
템플릿에서의 데이터 바인딩 (0) | 2010.02.04 |