什么是Base64,以及主要原理

Base64编码的组成

首先Base64编码使用6个二进制位来表示一个字符,而这6个二进制位刚好可以表示64个不同的字符,分表为26个大写和26个小写英文字母和0-9数字加上字符+和/来表示,如下表:

 其中的等号“=”用来补全,这里你可能不太理解,我用个例子来解释,如下:

base的Base64编码为

YmFzZQ==

按照Base64编码的规则得到的应该是YmFzZQ,没有后面的两个“==”,加上等号的目的是使得到的编码为4的倍数,就像正常得到的是YmFzZQ为6位,加上两个“==”就是8位正好是4的倍数。

那为什么Base64编码得到的结果是YmFzZQ(那就得说说它的原理了)

首先,字符转换为二进制

会将要编码的字符转换为二进制(这里会用到ASCII码“在计算机中,每个字符都有一个对应的 ASCII 编码。字母 "b" 的 ASCII 编码是 98。然后,我们可以将这个数字转换为二进制。在 ASCII 编码中,使用 8 位二进制表示一个字符。所以,将 98 转换为二进制时,得到 01100010。”)

b:01100010

a:01100001

s:01110011

e:01100101

base:01100010011000010111001101100101

其次,将得到的二进制6各一组转换为十进制,再转换为Base64编码

根据得到的二进制,6个一组转换为十进制的数字,再从Base64编码表中找到对应的字符,最后的不够6位就用“0”来补齐,如下:

二进制-->十进制-->Base64编码

011000-->24-->Y

100110-->38-->m

000101-->5-->F

110011-->51-->z

011001-->25-->Z

010000-->16-->Q

最终得到的只有6位不是4的倍数故要加两个“=”来补全。

  • 10
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值