Base64

2/10/2017来源:ASP.NET技巧人气:1610

Base64是一种把二进制数据转换成文本表示形式的方法,其基于64个可打印字符对数据进行编解码。

Base64提供了二进制数据到文本数据转换的一种方法,因此利用Base64可以实现二进制数据与基于文本的系统之间的交互。Base64在包括email,browser在内的许多应用程序里得到应用。

Base64

基本概念

Base64顾名思义是根据64个基本字符来对数据进行编码,包括a-z,A-Z,0-9共62个字符和其它另外2个字符。62个字母数字表里的字符是固定的,而其它2个字符根据具体的Base64的变种而不同。

2^6 = 64

故表示64个编码字符一共需要6bit。

3 * 8 = 24 = 4 * 6

故每3个字节(byte)可以用4个Base64字符编码,编码时按照Base64编码表,对源数据进行编码,每3个字节转换成4个Base64编码字符,解码时则反之。可见在没有其他影响因素的情况下,编码前后数据大小的比例为3 : 4,编码后的数据略大于源数据。

尾部处理

如果编码内容尾部不足3个字节,可以用”=”填补编码结果以表示尾部包含2个字节数据,用“==”填补编码结果表示尾部包含1个字节数据。尾部不足3个字节时的填补行为就像是64个字符中的2个特别字符一样,也是随Base64的变种而变化的,在一些Base64的变种中,“=”不是必须的。

编码文本数据

Base64除了可以完成二数进制数据到文本数据的转换,其实也可以对文本数据进行编码,而不是仅限于编码二进制数据。

Hello World!

经过Base64转换后将得到输出

SGVsbG8gV29ybGQh