代码

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <cstdlib>
#include <dlib/compress_stream.h>
#include <dlib/base64.h> using namespace dlib; int main(int argc, char** argv)
{
system("title Base64 Encoder");
if (argc != 2)
{
std::cout << "Usage: "<<argv[0]<<" filename" << std::endl; return EXIT_FAILURE;
} // 打开命令行指定的文件
std::ifstream fin(argv[1], std::ios::binary);
if (!fin) {
std::cout << "can't open file " << argv[1] << std::endl;
return EXIT_FAILURE;
} std::ostringstream sout;
std::istringstream sin; // base64编码器对象
base64 base64_coder;
// 数据压缩流对象
compress_stream::kernel_1ea compressor; // 压缩文件的内容并将结果存储在字符串流sout
compressor.compress(fin,sout);
sin.str(sout.str());
sout.clear();
sout.str(""); // 对压缩数据进行base64编码
base64_coder.encode(sin,sout); // 将输出流内容放入输入流中
sin.clear();
sin.str(sout.str());
sout.str(""); // 输出压缩后进行Base64编码后的字符串
std::string base64 = sin.str();
std::cout<<"====================\n"<<base64
<<"\n====================\n"<<std::endl; // 对Base64字符串解码
sin.clear();
sin.str(base64);
base64_coder.decode(sin,sout); // 将输出流内容放入输入流中
sin.clear();
sin.str(sout.str());
sout.str("");
// 对解码后的数据进行解压缩,并输出到标准输出
compressor.decompress(sin,std::cout);
return 0;
}

输出

测试的时候传入的是一个Qt工程文件

DLib库Base64编解码示例的更多相关文章

  1. Notepad++插件Base64编解码

    我们平常进行Base64编码需要自己写代码转换, 或者使用其他人编写的小工具程序, 也可以使用在线base64编码工具, 现在我们还可以使用Notepad++自带的插件, 进行Base64编码和解码, ...

  2. ios Base64编解码工具类及使用

    为了避免明码传递http内容,可以用base64编码后传输,收到方再解码,也方便了2进制数据的字符串式传输. 对于ios来说,google给提供了一个很好的工具类,方便进行base64编解码,当然也可 ...

  3. Delphi 自带的 Base64 编解码函数

    今天帮别人解决一个关于 Base64 编解码的问题,竟然发现 Delphi 自带了 Base64 编解码的单元,叫 EncdDecd,这名字很拗口而且不直观,估计这是一直很少人关注和知道的原因. 这个 ...

  4. openssl命令行Base64编解码

    openssl对base64编解码的规范支持较差,用它编解码的结果别的语言如php处理很不方便,注意的几点整理如下 1,如果php加密结果做base64编码长度小于64,则需要添加一个换行符opens ...

  5. Delphi 自带了 Base64 编解码的单元

    Delphi 自带了 Base64 编解码的单元,叫 EncdDecd,这名字很拗口而且不直观,估计这是一直很少人关注和知道的原因.  这个单元提供两套四个公开函数:  对流的编解码: procedu ...

  6. Delphi Base64 编解码函数

    Delphi 自带 Base64 编解码的单元, EncdDecd这个单元提供两套四个公开函数: 对流的编解码:procedure EncodeStream(Input, Output: TStrea ...

  7. Java实现BASE64编解码

    Java实现BASE64编解码 作者:chszs,转载需注明.博客主页:http://blog.csdn.net/chszs BASE64和其它类似的编码算法通经常使用于转换二进制数据为文本数据,其目 ...

  8. python rsa 加密解密 (编解码,base64编解码)

    最近有需求,需要研究一下RSA加密解密安全:在网上百度了一下例子文章,很少有文章介绍怎么保存.传输.打印加密后的文本信息,都是千篇一律的.直接在一个脚本,加密后的文本信息赋于变量,然后立马调用解密.仔 ...

  9. python base64 编解码,转换成Opencv,PIL.Image图片格式

    二进制打开图片文件,base64编解码,转成Opencv格式: # coding: utf-8 import base64 import numpy as np import cv2 img_file ...

随机推荐

  1. 多目标进化算法(MOEA)概述

    Weighted Sum Approach 该方法给出的表达式为: 首先,λ被称之为权重向量,观察和式,这完全就是m维向量的点乘公式嘛.具体的说,在目标空间中,把算法求出的一个目标点和原点相连构造成一 ...

  2. JVM的内存区域划分(转)

    原文链接:JVM的内存区域划分 JVM的内存区域划分 学过C语言的朋友都知道C编译器在划分内存区域的时候经常将管理的区域划分为数据段和代码段,数据段包括堆.栈以及静态数据区.那么在Java语言当中,内 ...

  3. Windbg命令学习15(bp bm bu bl bc ba断点)

    以下以skinhgy为例,windbg附加运行 1. bp 命令是在某个地址下断点, 可以 bp 0x7783FEB 也可以 bp MyApp!SomeFunction . 对于后者,WinDBG 会 ...

  4. ubuntu 下python环境的切换使用

    如何在Anaconda的python和系统自带的python之间切换 一般ubuntu下有三种python环境,1. 系统自带python2,3;在/usr/bin路径下:2. anaconda下安装 ...

  5. 集合 enum 枚举 简介 案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. 转:从头开始编写基于隐含马尔可夫模型HMM的中文分词器

    http://blog.csdn.net/guixunlong/article/details/8925990 从头开始编写基于隐含马尔可夫模型HMM的中文分词器之一 - 资源篇 首先感谢52nlp的 ...

  7. Linq-单条数据删除

    单条数据删除,用DeleteOnSubmit NorthwindDataContext db = new NorthwindDataContext(); Customer test1 = ctx.Cu ...

  8. 强化Linux安全的10个技能

    1.找出不必要的服务 很明显,服务器上跑的服务,并不是每个都有用的.强烈建议检查并关掉不需要的服务,从而减少风险(多跑一个服务,就可能多几个漏洞). 查询运行在runlevel 3的服务列表: [af ...

  9. Overcoming the List View Threshold in SharePoint CAML queries

    From: https://www.codeproject.com/articles/1076854/overcoming-the-list-view-threshold-in-sharepoint- ...

  10. [Canvas]Running Horse

    下载地址:https://files.cnblogs.com/files/xiandedanteng/52-RunningHorse.rar,下载完毕后请使用Chrome浏览器打开Index.html ...