SHA1 해쉬 함수의 경우 crypto++ 라이브러리로 사용 가능 하지만, 간단히(?) boost 라이브러리도 가능.

http://www.cryptopp.com/



#include <iostream>
#include <string>
using namespace std;

#include <boost/uuid/sha1.hpp>
#include <boost/format.hpp>
 
 
string ToSHA1(const string s)
{
    boost::uuids::detail::sha1 sh;
    sh.process_bytes(s.c_str(), s.length());

    unsigned int digest[5];
    sh.get_digest(digest);

    string r;
    for(int i = 0; i < 5; ++i) {
        r += str(boost::format("%08x") % digest[i]);
    }

    return r;
}

int main()
{
    
    try {
        cout << ToSHA1("abcedfg") << endl;

    }
    catch (exception &e) {
        cout << e.what() << endl;
    }
    catch (...) {
        cout << "unknown error" << endl;
    }

    return 0;
}


'Dev > Encryption' 카테고리의 다른 글

디피-헬만 키 교환, C++ 예제  (0) 2014.10.17
디피-헬만 키 교환  (0) 2014.10.16
SSL 키 교환 방식  (0) 2014.10.15
해쉬 함수 SHA1CryptoServiceProvider, SHA1Managed 차이  (0) 2014.09.26
Crypto++ 사용하기, 예제  (2) 2009.10.14

+ Recent posts