计算机网络中二进制转成base64,【计算机本科基础知识集锦】base64原理

计算机基础知识,我们讲求的是原理、为什么是这样?

什么是base64

base64是网络里传输数据的编码方式之一,尤其处理一些不可打印字符转换为可打印字符后,方便传输

base64如何编码先在这里做一个简单base64编码

原始字符串: hello

base64后:aGVsbG8=

我们来逐步学习是如何进行的?

我们首先得了解ASCII表,并查看每个字符的ASCII值,可见

第一步

经过查阅,我们得到如下:ASCIIhello十进制104101108108111

二进制0110 10000110 01010110 11000110 11000110 1111

上表格中

第一行是 h e l l o 这几个字符

第二行是 每个字符在ASCII表中的十进制数

第三行是 每个字符在ASCII表中对于的二进制数

第二步

我们得到字符串对于的二进制串是(每个字符的二进制依次连接而已):

0110 1000    0110 0101    0110 1100    0110 1100    0110 1111

第三步

对上面从左到右,按每6位一组,进行分组

如果末尾不足6位,则自动以 0 补齐,以凑够6位得到如下:

011010    000110    010101    101100    011011    000110    111100

这串中末尾剩余 4 位,补齐了 2 个0,凑齐了 6 位一组

第四步

对上面每个6位组前补齐00,得到如下:

00011010    00000110    00010101    00101100    00011011    00000110    00111100

第五步

对上面每个8位得到其十进制表示:

26    6    21    44    27    6    60

第六步

查阅base64字符表:索引对应字符索引对应字符索引对应字符索引对应字符索引对应字符索引对应字符0A10K20U30e40o50y

1B11L21V31f41p51z

2C12M22W32g42q520

3D13N23X33h43r531

4E14O24Y34i44s542

5F15P25Z35j45t553

6G16Q26a36k46u564

7H17R27b37l47v575

8I18S28c38m48w586

9J19T29d39n49x597

608

619

62+

63/

对第五步得到串查阅base字符表分别为:

a G V s b G 8

第七步

由于用了补齐位,所以我们需要用 = 来代替表示我们用了补齐

以 = 代表 00,那 == 代表了 0000

我们第三步补齐了 00

所以我们得到最后的base64串

aGVsbG8=

总结base64特点

1、从base64字符表可以看出,base64后只能包括0-9a-zA-Z+/等64种可打印字符

2、原始字符串的位数是 8 n (假设n个字符),我们经过按6位分组后,肯定会有剩余不足6位的情况

3、由于 (8n) % 6,取模运算,结果可能值为 0 2 4,分别对应需要不足的位数是 0 4 2,才能凑6

4、由一个=对应00,因此base64后字符串尾部有可能出现=或者==

base64解码

base64编码是个可逆过程,因此解码只要按照编码的逆序进行即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值