Base64
1.1、Base64编码产生的原因

任何事物的出现,都是为了解决某个问题。那么,Base64是为了解决啥问题而出现的呢?

问题描述:早期的一些EMail网关只能识别ASCII字符集中的字符, 如果发现EMail里有其他字符,就会将它们过滤掉,这样中文的邮件、带有图片附件的邮件在这些网关上就会发生问题。

解决方案:只需要将传输的每个字节做相同的编码,并且编码后的字符必须是ASCII字符集中的字符, 这样EMail就可以畅通无阻的通过网关了,只要在邮件客户端做解码,就客服了这个问题了。

1.2、Base64编码规范

Base64编码的最新规范是:RFC4648

1.3、Base64编码针对的数据

Base64编码可以将任何二进制的数据编码到可打印的64个字符之中。 这样,不管是图片、中文文本等都可以编码成只有ASCII字符的纯文本。

1.4、Base64编码后的字符

Base64编码后的字符串中可能出现的字符:

  • 'A' ~ 'Z',26个
  • 'a' ~ 'z',26个
  • '0' ~ '9',10个
  • '+' 和 '/'
  • '=' ,如果有的话,只能出现在末尾,作为填充字符

Base64编码后的字符串中最多可以出现65 = 26 + 26 + 10 + 2 + 1种字符。

1.5、Base64编码的原理
1.6、Base64在各种语言中的实现
1.7、Base64编码的变种

Base64编码的算法是公开的,因此,它不具有加密的功能,有时候,我们希望能达到Base64编码的功能, 但是不希望公开算法,也就是让它兼具加密的功能。这时候,我们就需要在Base64编码的算法基础上做一些改动, 由于别人不知道你的改动,他如果用Base64解码的话,就得不到原来的数据,这样就达到了保密的功能。