本文地址:http://blog.csdn.net/morewindows/article/details/11871429转载请标明出处,谢谢。

欢迎关注微博:http://weibo.com/MoreWindows

本系列一共四篇:

1. 《Base64系列第一篇 Base64介绍》

2. 《Base64系列第二篇 python中使用Base64编码解码》

3. 《Base64系列第三篇 C/C++中使用Base64编码解码(使用boost库)》

4. 《Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)》

Base64是一种基于64个可打印字符来表示二进制数据的表示方法,从本质上看Base64编码就是将三字节转四字节。如将字符串“Man”用Base64编码。

如果数据的长度不是3的整数倍,就要在后面补0再计算,每补2个0就再Base64串后加上1个‘=’。

Base64编码表如下:

Base64的不足之处

标准的Base64并不适合直接放在URL里传输,因为URL编码器会把标准Base64中的“/”和“+”字符变为形如“%XX”的形式,而这些“%”号在存入数据库时还需要再进行转换,因为ANSI SQL中已将“%”号用作通配符。

为解决此问题,可采用一种用于URL的改进Base64编码,它不在末尾填充'='号,并将标准Base64中的“+”和“/”分别改成了“-”和“_”,这样就免去了在URL编解码和数据库存储时所要作的转换,避免了编码信息长度在此过程中的增加,并统一了数据库、表单等处对象标识符的格式。

本篇主要介绍Base64编码的基本原理,下面三篇介绍如何编程实现Base64的编码和解码,欢迎继续浏览。

1. 《Base64系列第二篇 python中使用Base64编码解码》

2. 《Base64系列第三篇 C/C++中使用Base64编码解码(使用boost库)》

3. 《Base64系列第四篇 C/C++中使用Base64编码解码(从chromium库中抽取)》

本文地址:http://blog.csdn.net/morewindows/article/details/11871429转载请标明出处,谢谢。

欢迎关注微博:http://weibo.com/MoreWindows

Base64系列第一篇 Base64介绍相关推荐

  1. 自己动手实现蓝牙MESH应用系列 | 第一篇:蓝牙MESH基础概念介绍

    文章目录 1. 前言 2. 概述 2.1. 蓝牙风格(Flavors) 2.2. mesh网络的动机 2.3. mesh网络中的消息传输方式 2.3.1. 以消息为中心的通信 - 发布/订阅(publ ...

  2. Webpack系列-第一篇基础杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...

  3. 深入理解表单脚本系列第一篇——表单对象

    前面的话 javascript最初的一个应用就是分担服务器处理表单的责任,打破处处依赖服务器的局面.尽管目前的web和javascript已经有了长足的发展,但web表单的变化并不明显.由于web表单 ...

  4. Redis入门第一篇【介绍、安装】

    tags: Redis title: Redis入门第一篇[介绍.安装] 为什么要用Redis 我对Redis的简单理解:Redis相信学JavaEE的同学都听过这个名词,它是一个缓存数据库. Red ...

  5. Android 系统(243)---Android进程系列第一篇---进程基础

    Android进程系列第一篇---进程基础 内容预览.png 概述: 本文主要讲解进程基础,更深入的认识有血有肉的进程,内容涉及进程控制块,信号,进程FD泄露等等.仅供参考,欢迎指正. 一.从Linu ...

  6. GraphQL实战-第一篇-GraphQL介绍

    GraphQL实战-第一篇-GraphQL介绍 GraphQL的前世今生 Facebook的业务线有移动端,PC端和其它端,不同的场景下对一个资源所需要的信息是不同的.如移动端需要User的a.b.c ...

  7. Java小白入门系列 第一篇 写在前面

    2018年8月30日  22:00:17 郑州  多云 Sue Java小白入门系列 第一篇  写在前面 写在前面: 首先声明一下,本人也是正在学Java,并不是多么专业人士,只是最近受老师的启发,所 ...

  8. 小白学习Flink系列--第一篇(知识图谱)

    小白学习Flink系列–第一篇(知识图谱) 如何学习Flink? ​ 对于一门计算机技术来说,如何快速学习上手呢?具体的逻辑是什么呢?我认为有以下几条 了解技术的应用场景 技术的基本概念,如何使用,以 ...

  9. 深入理解ajax系列第一篇——XHR对象

    前面的话 1999年,微软公司发布IE5,第一次引入新功能:允许javascript脚本向服务器发起HTTP请求.这个功能当时并没有引起注意,直到2004年Gmail发布和2005年Google Ma ...

最新文章

  1. 海南医学院计算机,海南医学院医学信息学院
  2. Nginx的http块自定义服务日志
  3. win10下安装SQLServer2000
  4. 在安卓手机上下载linux系统,如何在安卓手机上运行Ubuntu系统
  5. 作者:张志恒(1990-),男,兰州大学资源环境学院硕士生。
  6. spring 注解重复(防重复请求)
  7. scrapy里的selector,不能有正则提取
  8. 一行代码让 Python 的运行速度提高100倍
  9. Cookie/Session机制详解 转
  10. 加入MapReduce后完全分布式集群搭建
  11. Fontmin字体生成,网站开发字体生成,@font-face字体格式生成,html网站字体引入,html网站字体格式转换器
  12. ucore lab1 系统软件启动过程 实验报告
  13. 基于leaflet地图对行政区进行维诺图区域划分
  14. CSR8615蓝牙芯片功能调试入门笔记------ 下
  15. 手机QQ聊天记录文件解密方法学习
  16. 【python】教你使用seLeniun爬取淘宝商品数据(内含完整源码)
  17. 奥古斯丁:我是一去不回的风
  18. 用PIL制作黑白滤镜
  19. nRF52832调试
  20. 高阶篇:5)仿真研究Simulation studies

热门文章

  1. 关于电子科技大学内共享单车使用的调查报告
  2. 高数 | 积分中值定理的开闭区间、积分第一中值定理及其推广
  3. 天池数据竞赛docker提交操作学习
  4. 怎样更改图片格式?怎么转图片的格式?
  5. frame切换/窗口切换
  6. JavaScript 图表LightningChart完整指南
  7. MODBUS通讯协议学习总结
  8. 解决 shiro 多次调用 redis 的问题
  9. 谷粒商城基础篇-1.分布式基础概念架构图与功能模块图
  10. 图片去水印软件分享!这三个好用的软件不能错过!​