一篇文章彻底搞懂Base64编码原理
开始 在互联网中的每一刻,你也许都在享受着Base64带来的便捷,但对付Base64的基本道理又相识几多?本日这篇文章教育各人相识一下Base64的底层实现。 Base64是什么东东呢? Base64编码是收集上常见的用于传输8bit字节数据的一种编码方法之一,以是可以依据归纳综合:它是一种编码方法,记着它不是加密的方法,它没有秘钥的观念,任何人拿到数据都能理会出来。它只是一种编码方法!! 到底哪些处所会行使? 我们在参数传输的进程中必定碰着过这样一种环境:行使全英文的没题目,但一旦涉及到中文就会呈现乱码环境。与此相同,收集上传输的字符并不满是可打印的字符,好比二进制文件、图片等。Base64的呈现就是为了办理此题目,它是基于64个可打印的字符来暗示二进制的数据的一种要领。 电子邮件刚问世的时辰,只能传输英文,但其后跟着用户的增进,中文、日文等笔墨的用户也有需求,但这些字符并不能被处事器或网关有用处理赏罚,因此Base64就登场了。随之,Base64在URL、Cookie、网页传输少量二进制文件中也有响应的行使。 实现道理 它的前因后果我们是知道了,但它的道理我们还不知道,那下面我们就来彻底搞懂它。 Base64编码将一个8位子节序列拆散为6位的片断,并且这每个6位的片断城市被分派一个字符,那这个是个什么字符呢?着实它是base64字母表中的64个字符之一,以是顾名思义base64了。而这64个字符然则有考究的,是选择了最常用并且兼容性最好的64个字符。以是可以算出base64编码后的字符串约莫比编码前大了33%,由于用8位来暗示6位。下面的具体的例子,各人来感觉下。 Base64尚有几个法则如下:
例子 插手编码前的数据是“Ow!”,那编码之后是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字母表中的都有对应的字符。以是查表转换得出是4字符的字符串“T3ch”。如下图所示转换表。 ![]() 整个进程就over了,就是这么简朴,各人领略了吗? 总结 大大都编码都是由字符串转化成二进制的进程,而Base64的编码则是从二进制转换为字符串。与通例恰好相反, Base64编码首要用在传输、存储、暗示二进制规模,不能算得上加密,只是无法直接看到明文。也可以通过打乱Base64编码来举办加密。 中文有多种编码(好比:utf-8、gb2312、gbk等),差异编码对应Base64编码功效都纷歧样。
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |