C,C++ 使用openssl,如何解析获得加密后的密文

项目最近需要aes加密,在使用openssl类库加密后返回了vector,请问我该如何解析获得加密后的密文呢?
遍历vector以后获得字符串,在VS上显示是乱码。
代码如下:

std::vector<unsigned char> aes_128_gcm_encrypt(std::string plaintext, std::string key) {
    size_t enc_length = plaintext.length() * 3;
    std::vector<unsigned char> output;
    output.resize(enc_length, '\0');

    unsigned char tag[AES_BLOCK_SIZE];
    unsigned char iv[AES_BLOCK_SIZE];
    RAND_bytes(iv, sizeof(iv));
    std::copy(iv, iv + 16, output.begin() + 16);

    int actual_size = 0, final_size = 0;
    EVP_CIPHER_CTX* e_ctx = EVP_CIPHER_CTX_new();
    //EVP_CIPHER_CTX_ctrl(e_ctx, EVP_CTRL_GCM_SET_IVLEN, 16, NULL);
    EVP_EncryptInit(e_ctx, EVP_aes_128_gcm(), (const unsigned char*)key.c_str(), iv);
    EVP_EncryptUpdate(e_ctx, &output[32], &actual_size, (const unsigned char*)plaintext.data(), plaintext.length());
    EVP_EncryptFinal(e_ctx, &output[32 + actual_size], &final_size);
    EVP_CIPHER_CTX_ctrl(e_ctx, EVP_CTRL_GCM_GET_TAG, 16, tag);
    std::copy(tag, tag + 16, output.begin());
    std::copy(iv, iv + 16, output.begin() + 16);
    output.resize(32 + actual_size + final_size);
    EVP_CIPHER_CTX_free(e_ctx);
    return output;
}