the algorithm is very trivial because it's just the usage of some openssl functions.
first you must decode the string with base64 to obtain the sequence of bytes (remember to skip the first _ char of the string before you decode it) and then:
Code:
unsigned char key[] =
"\xE1\xF0\xC3\xD2\xA5\xB4\x87\x96\x69\x78\x4B\x5A\x2D\x3C\x0F\x1E"
"\x34\x12\x78\x56\xab\x90\xef\xcd";
EVP_CIPHER_CTX ctx;
EVP_CIPHER_CTX_init(&ctx);
EVP_DecryptInit(&ctx, EVP_des_ede3_cbc(), key, key + 16);
EVP_DecryptUpdate(&ctx, pwd, &len, pwd, len);
EVP_CIPHER_CTX_cleanup(&ctx);
where:
- key is that sequence of 24 bytes
- pwd is the sequence of bytes
- len is their length
that's all :)