openssl + AES256 + Base64

C++ 2012. 3. 11. 16:10

openssl 을 이용하여 AES256 암복호화 및 암호화 된 값은 base64로 인코딩 해주는 샘플입니다.
암복호화 시 base64 의 문자열로 인코딩/디코딩하여 hex 형식으로도 변환해주는 함수를 구현해두눈 상태입니다.
추가로 간단한 AES128 용 샘플이 들어있습니다.
std::wstring 으로 암복호화시 utf-8 형식의 std::string 로 변환후 암복호화 수행하며 utf-8 변환시엔
UTF8Conv.h 를 사용하였습니다. ( http://yamoe.tistory.com/253 )

openssl 사용 정보
    버전 1.0.0g
    static library, /MT, vs2008/vs2010 용 컴파일 (첨부파일에 openssl 2008, 2010 용 static library 포함)
    특허 문제 있는 알고리즘은 제외하고 컴파일 함(openssl 홈페이지 참조)

aes.7z

reference
    openssl :  http://openssl.org/ 
    openssl aes256 c 샘플 :  http://cdmweb.de/openssl_aes.c.txt 
    openssl EVP 샘플 :  http://www.openssl.org/docs/crypto/EVP_EncryptInit.html 
    openssl base64 encoding 샘플 :  http://www.ioncannon.net/programming/34/howto-base64-encode-with-cc-and-openssl/ 
    openssl base64 decoding 샘플 :  http://www.ioncannon.net/programming/122/howto-base64-decode-with-cc-and-openssl/ 
    oepnssl base64 encoding시 주의할 점 :  http://byeong0.tistory.com/43 


4.OpenSSL_API를_이용한_인증서,_SSL_프로그래밍.pdf