Base64编码

作者: 真正的飞鱼 | 来源:发表于2023-01-31 20:26 被阅读0次

    介绍 Base64 编码

    Base64 是一种使用 64 个可打印字符来表示二进制数据的编码方式。

    Base64 中的 64 个可打印字符包括:大小写字母 a - z、阿拉伯数字 0 - 9,这样共有 62 个字符,另外两个可打印字符在不同的系统中而不同。RFC 4648 标准中,另外两个可打印字符是:加号 + 、斜线 /。Base64 使用等号 = 作为填充字符。


    技术是为了解决问题而生的,Base64 编码的作用是:使用 64 个可打印字符来表示二进制数据,以便二进制数据在计算机中存储、通过网络传输。

    Base64 编码的规则

    Base64 编码的规则是:

    • 首先,将二进制数据中每 “三组 8 个二进制位” 重新分组为 “四组 6 个二进制位”;
    • 然后,每组的 6 个二进制位用一个十进制数来表示。6 个二进制位可表示的十进制数的范围是 0 - 63;
    • 接下来,根据 Base64 索引表,将每组的十进制数转换成对应的字符,即每组可以用一个可打印字符来表示;

    "Man" 的 Base64 编码结果为 "TWFu",详细原理如下:

    image-20230123120757169.png

    Base64 编码将 3 个字节编码为 4 个字符。如果要编码的字节数不能被 3 整除,最后会多出 1 个或 2 个字节,那么可以使用下面的方法进行处理:

    • 先使用 0 字节值在末尾补足,使字节数能够被 3 整除,然后再进行 Base64 编码。
    • 在 Base64 编码结果的末尾加上一个或两个等号 =,代表补足的字节数。

    举例说明,最后剩余两个字节待补足:

    image-20230123121133570.png

    举例说明,最后剩余一个字节待补足:

    image-20230123121153663.png

    Base64 索引表

    RFC 4648 标准的 Base64 索引表

    十进制 二进制 字符 十进制 二进制 字符 十进制 二进制 字符 十进制 二进制 字符
    0 000000 A 16 010000 Q 32 100000 g 48 110000 w
    1 000001 B 17 010001 R 33 100001 h 49 110001 x
    2 000010 C 18 010010 S 34 100010 i 50 110010 y
    3 000011 D 19 010011 T 35 100011 j 51 110011 z
    4 000100 E 20 010100 U 36 100100 k 52 110100 0
    5 000101 F 21 010101 V 37 100101 l 53 110101 1
    6 000110 G 22 010110 W 38 100110 m 54 110110 2
    7 000111 H 23 010111 X 39 100111 n 55 110111 3
    8 001000 I 24 011000 Y 40 101000 o 56 111000 4
    9 001001 J 25 011001 Z 41 101001 p 57 111001 5
    10 001010 K 26 011010 a 42 101010 q 58 111010 6
    11 001011 L 27 011011 b 43 101011 r 59 111011 7
    12 001100 M 28 011100 c 44 101100 s 60 111100 8
    13 001101 N 29 011101 d 45 101101 t 61 111101 9
    14 001110 O 30 011110 e 46 101110 u 62 111110 +
    15 001111 P 31 011111 f 47 101111 v 63 111111 /
    填充 =
    image-20230123120641215.png

    参考资料

    Base64 - 维基百科,自由的百科全书 (wikipedia.org)

    相关文章

      网友评论

        本文标题:Base64编码

        本文链接:https://www.haomeiwen.com/subject/ziebhdtx.html