网站建设380元

详询客服获取帮助

什么是base64编码,原理是什么,怎么用?

2018-8-6

Base64编码,很多童鞋都应该听说过,而且对base64编码了如指掌的童鞋估计也不在少数,如果正在看文章的你对此一无所知,那么本文非常适合你,本人用通俗易懂的语言为大家讲解(当然,这也是本人一贯的风格)。如果你已经很熟悉此编码,那么此次阅读就是温故而知新。好了,废话少说,咱们开始吧。

base64到底是什么东西呢?

Base64编码是网络上常见的用于传输8bit字节数据的一种编码方式之一(有些人和书本会将编码写成加密算法,本人觉得是欠妥的。因为任何人拿到编码后的数据都能转化成原始数据,因为算法是透明的,也不存在秘钥的概念。)

那有童鞋会问了,这个到底有什么用?应用场景是怎样的?

最常用的应用场景就是在http协议上传输较长的文本信息。它是将用户输入的二进制数据,打包成一种安全格式,将其作为http首部字段的值发送出去,而无须担心其中包含会破坏HTTP分析程序的冒号、换行符或二进制值。BASE64 编码与将二进制数据文本化的uuencode和binhex标准在本质上是类似的,但是空间效率更高。

实现原理

它的用途现在是知道了,那它的实现原理是怎样子的呢?我们接着往下看

Base64编码将一个8位子节序列拆散为6位的片段,并为每个6位的片段分配一个字符,这个字符是Base64字母表中的64个字符之一(看到这里知道64是什么意思了吧,其实是代表64个字符)。而这64个字符可不是随便挑的,而是选择了最常见和兼容性最好的64个字符。所以base64编码字符串大约比原来大了33%,因为用8位表示6位。如果还是不理解,没关系,下面有例子等着大家。

Base64还有几个规则如下:


①.把3个字符变成4个字符。


②每76个字符加一个换行符。


③.最后的结束符也要处理。


例子

如果输入数据是“Ow!”,那么base64编码之后得到的是4个字符的base64编码值“T3ch”。我们看下一步一步的转换过程。


1, 字符串"Ow!"被拆分成3个8位的字节(0x4F、0x77、0x21)。看下图:








2, 这3个字节构成了一个24为的二进制01001111 01110111 00100001。看下图:








3, 这些为被划分为一些6位的序列010011、110111、011100、1000001。看下图:








4, 每个6位值都表示了从0~63之间的数字,对应base64字母表中的64个字符之一。得到的base64编码字符串是4个字符的字符串“T3ch”。下图是转换表,摘自RFC2045。





上一页:物理服务器、云服务器、虚拟主机有什么区别?怎么选?

下一页:怎么优化网站能让排名提高



阿里云主机全线七折,详询客服