boost库实现Base64编解码
来源:互联网 发布:mac系统偏好设置有个1 编辑:程序博客网 时间:2024/06/05 14:42
Base64介绍
Base64是一种基于64个可打印字符来表示二进制数据的表示方法,从本质上看Base64编码就是将三字节转换为四字节,如果数据的长度不是3的整数倍,就要在后面补0再计算,每补2个0就再Base64串后加上1个‘=’。
boost库Base64
boost库对Base64编解码进行很了很好的封装,以下代码用boost库实现Base64编解码
//boost库引用文件#include <boost/archive/iterators/base64_from_binary.hpp>#include <boost/archive/iterators/binary_from_base64.hpp>#include <boost/archive/iterators/transform_width.hpp>//标准库#include <iostream>#include <string>#include <sstream>using namespace std;using namespace boost::archive::iterators;//Base64编码bool Base64Encode(string * outPut, const string & inPut);//Base64解码bool Base64Decode(string * outPut, const string & inPut);int main(void){cout<<"***************************************"<<endl;cout<<"* boost库Base64编码解码 *"<<endl;cout<<"***************************************"<<endl;string inputstr = "http://blog.csdn.net/nk_wang/article/details/44536269/\n#@$%^^&**(*(())+=";//Base64编码string Output;string Input;cout<<"Base64编码前:"<<inputstr<<endl;Base64Encode(&Output,inputstr);cout<<"Base64编码后:"<<Output<<endl;//Base64解码cout<<"Base64解码前:"<<Output<<endl;Base64Decode(&Input,Output);cout<<"Base64解码后:"<<Input<<endl;return 0;}bool Base64Encode(string * outPut, const string & inPut){typedef base64_from_binary<transform_width<string::const_iterator,6,8>> Base64EncodeIter; stringstream result;copy(Base64EncodeIter(inPut.begin()),Base64EncodeIter(inPut.end()),ostream_iterator<char>(result));size_t Num = (3 - inPut.length() % 3) % 3;for (size_t i = 0; i < Num; i++){result.put('=');}*outPut = result.str();return outPut->empty() == false;}bool Base64Decode(string * outPut, const string & inPut){typedef transform_width<binary_from_base64<string::const_iterator>,8,6> Base64DecodeIter;stringstream result;try{copy(Base64DecodeIter(inPut.begin()),Base64DecodeIter(inPut.end()),ostream_iterator<char>(result));}catch (...){return false;}*outPut = result.str();return outPut->empty() == false;}
以上代码是实结果如下图所示
2 0
- boost库实现Base64编解码
- BASE64编解码简单实现
- Java实现BASE64编解码
- VB实现Base64 编解码
- Java实现BASE64编解码
- Java实现BASE64编解码
- java实现Base64编解码
- JS实现UTF8编解码及Base64编解码
- Base64 编解码C语言实现
- 图片数据Base64编解码(java实现)
- Base64编解码的C++实现
- base64 编解码的 Java 实现
- 图片数据Base64编解码(java实现)
- 找到的 base64编解码实现
- 图片数据Base64编解码(java实现)
- Base64 编解码C语言实现
- C语言实现Base64编解码
- C语言实现base64编解码
- VS2010 集成Boost 库,选择不同类型Boost 库的注意事项
- hdu1272(并查集)
- ios中UITextfield中禁止输入Emoji
- Android面试题总结加强版(二)
- POJ 2828 Buy Tickets - Segment Tree
- boost库实现Base64编解码
- 关于切割问题
- ISO-OSI的七层协议经典架构
- js放大镜效果,超强注释
- 从同事的一个提问想到的学习途径
- Hdu 2049解题报告
- Day-4 又加进去了IE6的兼容..
- css3毛玻璃效果 css图片模糊效果处理
- 锋利的jquery学习