본문 바로가기

About Programing/03. Tip

CPP에서 MD5 암호화 하기

이 소스는 http://bbangwon.tistory.com/16 에서 제공된것을 일부 수정한것임을 명시합니다.
소스제공 : 빵원군


1. 소스

// MD5Test.cpp

#ifdef HAVE_CONFIG_H 
#include <config.h> 
#endif 


#include "md5.h" 
#include <iostream> 
#include <cstdlib> 
#include <string> 


using namespace std; 


string md5(const string strMd5) 
{    
	md5_state_t state;    
	md5_byte_t digest[16];    
	char hex_output[16*2 + 1];    
	int di;	
    
	md5_init(&state);    
	md5_append(&state, (const md5_byte_t *)strMd5.c_str(), strMd5.length());    
	md5_finish(&state, digest);	
    
	for (di = 0; di < 16; ++di)
	{        
		sprintf(hex_output + di * 2, "%02x", digest[di]);
	}	
    
	return hex_output;
} 


int main(int argc, char *argv[]) 
{    
	cout << md5("1234") << endl;
    
	return EXIT_SUCCESS; 
}


2. 결과



3. 용도
 제로보드 사용시에, 회원 패스워드가 암호화 되어서 DB에 저장됩니다.
 만약, 제로보드 자체 로그인이 아닌, 작성한 프로그램에서 로그인 기능을 만들고 싶다면, DB에서 회원 ID를 불러와 대조하는건 가능한데, 패스워드를 어떻게 대조해야 될지 막막하실겁니다.

 이때, 제로보드에서 패스워드를 암호화 하는방식인 MD5를 사용하여, 사용자로 부터 입력받은 패스워드를 암호화 하여, DB에 있는 패스워드와 대조하면 됩니다.