1.软文推荐

2.软文推荐

3.软文推荐

Base64是一种基于64个可打印字符来表示二进制数据的表示方法。由于 2的6次方是64,所以每6个比特为一个单元,对应某个可打印字符。3个字节有24个比特,对应于4个Base64单元,即3个字节可由4个可打印字符来表示。它可用来作为电子邮件的传输编码。在Base64中的可打印字符包括字母A-Z、a-z、数字0-9,这样共有62个字符,此外两个可打印符号在不同的系统中而不同。在MIME格式中,剩余两个字符是加号+和斜杠/,等号=用来作为后缀用途。UTF-7是一个修改版Base64,主要的区别在于不用等号=补余,因为该字符通常需要大量的转译。在IRCu等软件所使用的P10 IRC服务器间协议中,将+/改成了[]。Base64编码可用于在HTTP环境下传递,不在末尾填充=号,并将标准Base64中的+和/分别改成了-和_。

base64的原理

base64编码后的数据比原始数据略长,比原来长1/3。为什么会长1/3?我们学习下原理,之后工作中base64就再也不会挡道了。转换的时候,将3字节的数据,先后放入一个24位的缓冲区中,先来的字节占高位。数据不足3字节的话,于缓冲器中剩下的比特用0补足。每次取出6比特,按照其值选择ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/中的字符作为编码后的输出,直到全部输入数据转换完成。若原数据长度不是3的倍数时且剩下1个输入数据,则在编码结果后加2个=;若剩下2个输入数据,则在编码结果后加1个=。换句话,本来3个字节,base64经过自己的编码成为4个字节。比原理多了1/3。来,举个例子

文本 h e l
ascii 编码 104 101 108
二进制 01101000 01100101 01101100
base64 6位 011010 00 0110 010101 101100
base64 10进制编号 26 6 21 44
base64 结果 a G V s

hel的base64编码结果就是aGVs

base64码表

base64的应用

base64的应用特别广泛,个人在开发中遇到最多的两个方面,第一个是URL的base64,另一个是图片base64。先说第一种,已经有urlencode了,为什么还需要base64 的URL。各有用途。urlencode是将-_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。如果一个URL里面有+ 有空格,是不是urlencode就搞不定,使用base64就会迎刃而解。带来的代价就URL比原理长了1/3

图片编码的问题,经常跟客户端开发的时候,客户端使用二进制流上传图片的时候比较复杂,就可以使用base64将图片的二进制编码转成base64,服务端接到数据之后再basedecode之后就是图片的二进制流。特别方便,带来的结果就是,传输的数据多了1/3。

遇到的问题

根据RFC 822规定,每76个字符,还需要加上一个回车换行。出问题的一般都是822规定,有的语言,对base64decode的时候,发现有换行符就decode失败了,究其原因基本都市822规定,有很多换行,decode的时候解码失败,知道原因了就特别简单,将换行符 | 替换成 空,再base64decode就可以了。

本文来源:www.lxlinux.net/7682.html,若引用不当,请联系修改。

相关文章 8

1

服务器流量大怎么办(服务器访问量过大怎么办) 2分钟前

目录:1、WEB服务器流量超负载问题解决方法2、服务器流量过大导致访问服务器缓慢?3、服务器带宽跑满了怎么办4、如果服务器传过来的数...

2

Docker管理套件使容器化变得更加井然有序 3分钟前

Docker之前发布了一个新的容器控制中心,称为Docker数据中心(DDC),其设计目的是用于大型和小型企业创建、管理和分发容器的一个集成管...

3

凡科网制作网站(凡科网站推广版) 4分钟前

目录:1、凡科网建完网站怎么登入?2、凡科网是免费建站的网站吗?这个需要交费吗?3、凡科网是不是永久免费的网站?凡科网建完网站怎么...

4

Linux下配置本地yum源和外网yum源 5分钟前

Linux下如何配置 本地yum源和外网yum源 ?YUM 它是一个 C/S 架构的软件,能够对基于 RPM 格式的软件包进行管理,它提供了包括自动解决依赖关...

5

Linux定时重启具体方法 7分钟前

Linux如何定时重启?本篇文章重点为大家分享一下Linux定时重启的命令以及注意事项,有需要的小伙伴可以参考一下。 1.在服务的目录下新建...

6

美国高防vps租用(海外高防vps) 9分钟前

目录:1、美国VPS服务器租用?哪个机房的好2、求推荐个,美国高防VPS,300一个月以下的就好。3、网站租用美国vps主机有哪些优势?美国V...

7

Linux系统安装OpenSSL最简单教程 12分钟前

OpenSSL 是一个开放源码的软件包库,可以是应用程序进行安全的通信,避免窃听。现在已经被广泛使用,下面大家分享一下Linux系统安装 Op...

8

镇江bgp高防vps(高防BGP服务器) 14分钟前

目录:1、需要一个江苏南通 、镇江 或 扬州 的VPS,听说这的不错,谁能提供几个IDC?2、高防云主机跟VPS有什么区别?3、BGP多线机房的BGP到...