编码技术

1、编码编码

一、base64 编码url

  base64编码是将文本从新编码,转化成指定 64个可见ASCII字符的形式,这64个字符包括 A~Z, a~z, 0~9, + 和 /  spa

  其原理是将原文本按每3个字节取出来,每 6bit 依次拆开,首部补上2bit的0值,这样本来3字节的数据就变成了新的4字节。索引

  从原理可知,base64编码以后,最终文本会比原文本增长33.3%。it

  须要注意的是,若是原文本取到最后,不足3字节,则不足6bit部分,除首部补上2bit的0值以外,尾部也补上0值,凑足8bit。base64

  那新拼成的4字节是按标准的ASCII码显示吗?不是,是按一份约定好的索引表,该表以下:table

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

   须要注意的是,若是不足3字节,缺乏几个字节就在最终编码后面补上几个=号,即最多能够补两个=号。原理

 

  好比对 go 进行 base64 ,首先就能猜到最终编码末尾会补上一个 = 号,而后咱们看一下原文的ASCII码, g 是 103 即 01100111, o 是 111 即 01101111,放到一块儿是 0110011101101111,按每 6bit 分割为 011001 | 110110 | 1111 ,补好首部和尾部是 00011001 | 00110110 | 00111100 ,转成十进制为 25 | 54 | 60 ,查表得出 Z | 2 | 8,即 Z28,再补上一个=号,最终结果是 Z28=二进制

  base64能够将不可见字符转成可见字符传输,在 STMP 协议和其它文本协议中比较经常使用。此外在HTTP协议中,有时也会进行base64或url编码,来转换掉一些特殊字符。数据

 

二、url编码

 

三、16进制编码(二进制编码、64进制编码[base64])

 

四、ASCII码

相关文章
相关标签/搜索