crypto++ 使用Base64编码解码数组

使用Crypto++库中的Base64Encoder、Base64Decoder编码解码数组。代码如下:

 

//
// Created by gj on 12/24/19.
//
#include <iostream>
#include <crypto++/base64.h>
#include <crypto++/sha.h>
#include <crypto++/filters.h>
#include <cryptopp/base64.h>

using namespace std;
using namespace CryptoPP;

int main() {
    // "CBC Mode Test", without '\0'
    unsigned char plainText[] = {67, 66, 67, 32, 77, 111, 100, 101, 32, 84, 101, 115, 116};

    string encoded;

    Base64Encoder encoder;
    encoder.Put(plainText, sizeof(plainText));
    encoder.MessageEnd();

    word64 size = encoder.MaxRetrievable();
    if (size) {
        encoded.resize(size);
        encoder.Get((byte *) &encoded[0], encoded.size());
    }

    cout << encoded << endl;

    string decoded;
    Base64Decoder decoder;
    decoder.Put((byte *) encoded.data(), encoded.size());
    decoder.MessageEnd();

    size = decoder.MaxRetrievable();
    if (size && size <= SIZE_MAX) {
        decoded.resize(size);
        decoder.Get((byte *) &decoded[0], decoded.size());
    }
    cout << decoded << endl;

    return 0;
}

  

posted on 2019-12-24 16:31  areful  阅读(1783)  评论(0编辑  收藏  举报

导航