《ASCE1885的信息安全》のCrypto++用户手册のbase64.h

Base64Encoder是一个接收任何数据输入并将之转换成base64编码的过滤器,并可选地在每行满72个字符时进行换行。

在现行版本的Crypto++中,类Base64Encoder对象在销毁时并没有执行对缓冲区中的数据进行编码。因此,除了在一个包含Base64Encoder过滤器的过滤器对象链中,当Base64Encoder之前没有其他过滤器时,函数MessageEnd()会被自动调用外,我们必须在数据输入结束时显式地调用函数MessageEnd()

(注意:MessageEnd()nPropagation参数能被使用的情况是:当和Base64Encoder关联的其他过滤器对象不需要message-end信号时)。

下面来看看使用Base64Encoder的实例吧:

// Binary data

 byte const* pbData = ...;

 unsigned int nDataLen = ...;

 

 // Encode with line breaks (default).

 // Ordinarily, we would now have to call MessageEnd() to flush

 // Base64Encoder's buffer. However, the 'true' parameter will cause

 // the StringSource::PumpAll() method to be called, and that method

 // will cause MessageEnd() to be triggered implicitly.

 StringSource(pbData, nDataLen, true,

    new Base64Encoder(

        new FileSink("base64-encoded.dat")));

 

 // Encode without line breaks.

 StringSource(pbData, nDataLen, true,

    new Base64Encoder(

        new FileSink("base64-encoded.dat"),

        false));

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值