BASE64编码

BASE64编码

定义

  • Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。
  • Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信息。采用Base64编码具有不可读性,需要解码后才能阅读。
  • 为统一和规范化Base64的输出,Base62x被视为无符号化的改进版本

简介

  • Base64要求把每三个8Bit的字节转换为四个6Bit的字节(38 = 46 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。

规则

  • 把3个字节变成4个字节。
  • 每76个字符加一个换行符。
  • 最后的结束符也要处理。

使用Base64编码的意义

采用Base64编码不仅比较简短,同时也具有不可读性,即所编码的数据不会被人用肉眼所直接看到,Base64编码可用于在HTTP环境下传递较长的标识信息。

原理

转换表:

索引 对应字符 索引 对应字符 索引 对应字符 索引 对应字符
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w
15 P 32 g 49 x
16 Q 33 h 50 y

例子

如何把man转成Base64编码

  • 第一步,"M"、"a"、"n"的ASCII值分别是77、97、110,对应的二进制值是01001101、01100001、01101110,将它们连成一个24位的二进制字符串010011010110000101101110。
  • 第二步,将这个24位的二进制字符串分成4组,每组6个二进制位:010011、010110、000101、101110。
  • 第三步,在每组前面加两个00,扩展成32个二进制位,即四个字节:00010011、00010110、00000101、00101110。它们的十进制值分别是19、22、5、46。
  • 最后一步,根据下图,得到每个值对应Base64编码,即T、W、F、u。

参考链接

https://blog.csdn.net/u014600626/article/details/96430290
https://baike.baidu.com/item/base64/8545775?fr=aladdin
https://tool.oschina.net/encrypt?type=3

使用工具在线编码


在python中编码


posted @ 2021-10-11 21:22  20211308wjc  阅读(153)  评论(2编辑  收藏  举报