Я работаю над оболочкой C ++ для Windows Crypto API и CNG, которую я использую в своих проектах. Я планирую перенести все это на github, но пока это просто работа, но вы можете найти ее полезной для основ Crypto, таких как кодирование / декодирование HEX / Base64 и т. Д.
https://github.com/m4x1m1l14n/Crypto
Вы можете использовать метод Crypto :: Hex :: Encode () для достижения желаемого.
#include <Crypto\Hex.hpp>
#include <Crypto\Random.hpp>
using namespace m4x1m1l14n;
char arr[] = { 0xaa, 0xbb, 0xcc, 0xdd, 0x99, 0x00 };
encoded = Crypto::Hex::Encode(arr, sizeof(arr));
/* encoded = "aabbccdd9900" */
Также вы можете использовать обертку для MD5, которая находится в пространстве имен Hash, вот так. (Если вы не используете большой объем данных)
#include <Crypto\Hex.hpp>
#include <Crypto\Hash.hpp>
using namespace m4x1m1l14n;
encoded = Crypto::Hex::Encode(Crypto::Hash::MD5("Whatever you want to hash"));