MD5 해시 값 얻기
System.Security.Cryptography 어셈블리를 사용해서 md5 해시 값을 얻는 간단한 예제입니다.
안녕하세요 : )
md5는 해시 알고리즘의 일종으로, 인코딩된 내용으로부터 원래 메시지를 유추할 수 없는 특성 때문에 패스워드를 저장할 때나 기타 보안에 관련된 부분에 자주 쓰이는 알고리즘입니다.
닷 넷에서는 md5 이외에도 des, sha, dsa, rca 등 여러가지 암호화 알고리즘을 System.Security.Cryptography 어셈블리를 통해 제공하고 있습니다. (Kenial은 이것들 중 사용해 본 알고리즘이 md5와 sha밖에 없습니다) 다른 알고리즘들도 비슷한 형태이니, 이 샘플을 보고 필요한 알고리즘을 선택해서 사용하실 수도 있습니다.
그럼 시작합니다.
암호화 알고리즘이 필요한데..
보안의 중요성은 이곳에서 더 언급하느니 입만 아프다. 아니 손가락이 아프다. 적당히 응용해서 사용하도록 하자 :
string strSource = "Source";
System.Security.Cryptography.MD5CryptoServiceProvider md5 =
new System.Security.Cryptography.MD5CryptoServiceProvider();
byte[] pbSource = System.Text.Encoding.UTF8.GetBytes(strSource);
byte[] pbMD5Hashed = md5.ComputeHash(pbSource);
System.Text.StringBuilder strResult = new StringBuilder();
foreach(byte b in pbMD5Hashed)
{
if(b<16)
strResult.Append(string.Format("0{0:x}",b));
else
strResult.Append(string.Format("{0:x}",b));
}
MessageBox.Show(strResult.ToString());
"f31bbdd1b3e85bccd652680e16935819"가 출력되는 것을 확인할 수 있다.
정리
닷넷을 사용하면서 '더 이상 구현할게 없다!'라는 생각이 종종 들곤 합니다. 워낙에 방대한 프레임워크 앞에서 단지 필요한 것을 찾지 못해 헤맬 경우가 생기기까지 하죠.
md5 해시 함수가 필요해서 이 아티클을 읽어보셨다면, 실제로 md5 해시가 어떻게 이루어지는지도 한 번쯤은 이해하고 넘어가시는게 어떨지.. : )
'TechLog' 카테고리의 다른 글
Windows Forms에서 컨트롤의 탭 순서 조절하기 (0) | 2008.09.08 |
---|---|
.NET에서 새로운 프로세스 실행하기 (1) | 2008.09.04 |
UTF8(Unicode) -> euc-kr 문자 셋으로 변환하기 (0) | 2008.08.27 |
Managed Type, Unmanaged Type의 참조 (0) | 2008.08.26 |
c#에서 포인터를, unsafe (0) | 2008.08.23 |