Base64编码原理
来源:互联网 发布:最全小说软件 编辑:程序博客网 时间:2024/06/05 11:27
一、Base64编码原理
1、Base64编码原理简单介绍
Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。编码原理如下所示:
(1)base64的编码都是按字符串长度,以每3个8bit的字符为一组,
(2)然后针对每组,首先获取每个字符的ASCII编码,
(3)然后将ASCII编码转换成8bit的二进制,得到一组3*8=24bit的字节
(4)然后再将这24bit划分为4个6bit的字节,并在每个6bit的字节前面都填两个高位0,得到4个8bit的字节
(5)然后将这4个8bit的字节转换成10进制,对照Base64编码表,得到对应编码后的字符。
2、Base64编码表
Base64编码使用64个明文来编码任意的二进制文件,它里面只使用了A-Z,a-z,0-9,+,/这64个字符。编码里面还有“=”号,不过等号不属于编码字符,而是填充字符。Base64编码表如下所示:
3、一个简单的实例
以字符串“Ow!”为例:
(1)字符串“Ow!”被分拆成3个8位的字节(0x4F、0x77、0x21);
(2)这3个字节构成一个24位的二进制值:01001111 01110111 00100001;
(3)这些位被划分为4个6位的序列:010011、110111、011100、100001;
(4)每个6bit的字节前面都填两个高位0,得到4个8bit的字节:00010011、00110111、00011100、00100001;
(5)这4个8bit的字节对应的10进制的数值分别为:19、55、28、33,对照Base64编码表,得到对应编码后的字符:T、3、c、h。到此编码结束。
4、Base64编码填充机制
Base64编码收到一个8位字节序列,将这个二进制序列划分成6位的快。二进制序列有时不能正好平分成6位的块,在这种情况下,就在序列末尾填充零位,使二进制的序列成为24的倍数(6和8的最小公倍数)。
对已填充的二进制串进行编码时,任何完全填充(不包含原始数据中位)的6位组都由特殊的第65个字符“=”表示。如果6位组是部分填充的,就将填充位设置为0。一个实例如下表所示:
“a:a”和“a:aaaa”分别为3个字节和6个字节,是3的倍数,因此无需填充。“a:aa”和“a:aaa”分别为4个字节和5个字节,不是3的倍数,因此需要填充。
- Base64编码 原理
- Base64编码转换原理
- base64编码原理简介
- BASE64 编码原理
- Base64 编码原理
- base64编码原理
- Base64 编码原理
- Base64编码解码原理
- BASE64 编码原理
- Base64编码原理
- Base64编码原理
- Base64编码原理解析
- Base64编码原理
- Base64编码原理
- Base64编码原理
- base64编码原理
- base64 编码原理
- Base64编码原理
- V4L2简介
- python学习--模块
- Java拷文件4种方法及效率实验
- 表单新增加的很很用的属性
- hdoj The Water Problem 5443 (线段树区间最值问题)
- Base64编码原理
- Gson 源码解析-2015/10/13
- 黑马程序员---多线程
- Django i18n国际化
- 解决JavaOpenCV的内存问题
- 广州供电局车辆管理系统
- Struts2文件上传的过滤
- 基于Ogre的DeferredShading(延迟渲染)的实现以及应用
- nth-child的用法