任何事物的出现,都是为了解决某个问题。那么,Base64
是为了解决啥问题而出现的呢?
问题描述:早期的一些EMail
网关只能识别ASCII字符集中的字符, 如果发现EMail
里有其他字符,就会将它们过滤掉,这样中文的邮件、带有图片附件的邮件在这些网关上就会发生问题。
解决方案:只需要将传输的每个字节做相同的编码,并且编码后的字符必须是ASCII字符集中的字符, 这样EMail
就可以畅通无阻的通过网关了,只要在邮件客户端做解码,就客服了这个问题了。
Base64
编码的最新规范是:RFC4648
Base64
编码可以将任何二进制的数据编码到可打印的64
个字符之中。 这样,不管是图片、中文文本等都可以编码成只有ASCII字符的纯文本。
Base64
编码后的字符串中可能出现的字符:
Base64
编码后的字符串中最多可以出现65 = 26 + 26 + 10 + 2 + 1
种字符。
Base64
编码的算法是公开的,因此,它不具有加密的功能,有时候,我们希望能达到Base64
编码的功能, 但是不希望公开算法,也就是让它兼具加密的功能。这时候,我们就需要在Base64
编码的算法基础上做一些改动, 由于别人不知道你的改动,他如果用Base64
解码的话,就得不到原来的数据,这样就达到了保密的功能。