• Base64原理简介


    Base64是一种编码方式,通常用于将二进制数据转换成可见字符的形式,该过程可逆。
    过程大致如下:
    1. 对64个可见字符,进行一个索引编码。索引是二进制的值,对应找到一个可见字符。
    Base64 编码表
    ValueChar
     
    ValueChar
     
    ValueChar
     
    ValueChar
    0 A 16 Q 32 g 48 w
    1 B 17 R 33 h 49 x
    2 C 18 S 34 i 50 y
    3 D 19 T 35 j 51 z
    4 E 20 U 36 k 52 0
    5 F 21 V 37 l 53 1
    6 G 22 W 38 m 54 2
    7 H 23 X 39 n 55 3
    8 I 24 Y 40 o 56 4
    9 J 25 Z 41 p 57 5
    10 K 26 a 42 q 58 6
    11 L 27 b 43 r 59 7
    12 M 28 c 44 s 60 8
    13 N 29 d 45 t 61 9
    14 O 30 e 46 u 62 +
    15 P 31 f 47 v 63 /
    2.上面的表说明只要6位,就可以表示0-63的范围。
    Base64先将每个字节转成二进制形式,每6位取值,将得到的值作为索引,到1.的表中索引到对应的可见字符。
    而一个字节是8位,于是,就有2位多余了。多余了怎么办呢,与下一个字节拼接。
    很明显,每3个字节,就可以编码成4个0-63的数字,对应4个字符。
     
    用代码说话。
    1 public static void main(String[] args) {
    2         byte[] bytes = new byte[] { 1, 2, 3 };
    3         System.out.println(new String(Base64.encodeBase64(bytes)));
    4     }

    我们来分析一下。

    这个byte数组的二进制数据如下:

    00000001  00000010  00000011

    000000  010000  001000  000011

    0      16      8     3

    A      Q      I      D

    因此,结果就是AQID。

    注意两点:

    1)并不能保证每个数组个数都是3的倍数,因此,对于未能补成二进制位的,在后面补0,如下图A
    2)原则上,Base64是最小4个字符一组,对于不足的字符,用=填充,如下图A, BC
     
  • 相关阅读:
    (转)Quick Tip: Provisioning Web Parts to a Page(添加web part到page上,)
    解决sharepoint 2010浏览器在线浏览Word出错(非原创)
    转:部署带webpart的网页(Deploy a Page using a Feature)
    单点登录到sharepoint
    Feature Base On WebApp
    Create a New Document Using Office Web Apps
    学校合并与数组合并
    DNN拟合曲线
    使用tf.keras.layers.Layer自定义神经网络的层
    numpy
  • 原文地址:https://www.cnblogs.com/kingsleylam/p/4986404.html
Copyright © 2020-2023  润新知