base64.h

来自「各种加密算法的源代码」· C头文件 代码 · 共 58 行

H
58
字号
#ifndef BASE64_H
#define BASE64_H

#include "cryptlib.h"
#include "filters.h"

class Base64Encoder : public Filter
{
public:
    Base64Encoder(BufferedTransformation *outQueue = new ByteQueue);

    void Put(byte inByte)
    {
        inBuf[inBufSize++]=inByte;
        if (inBufSize==3)
            EncodeQuantum();
    }

    void Put(const byte *inString, unsigned int length);
    void InputFinished();

private:
    void LineBreak();
    void EncodeQuantum();

    int inBufSize;
    int lineLength;
    byte inBuf[3];
};

class Base64Decoder : public Filter
{
public:
    Base64Decoder(BufferedTransformation *outQueue = new ByteQueue);

    void Put(byte inByte)
    {
        int i=ConvToNumber(inByte);
        if (i >= 0)
            inBuf[inBufSize++]=(byte) i;
        if (inBufSize==4)
            DecodeQuantum();
    }

    void Put(const byte *inString, unsigned int length);
    void InputFinished();

private:
    static int ConvToNumber(byte inByte);
    void DecodeQuantum();

    int inBufSize;
    byte inBuf[4];
};

#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?