編碼技術

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碼

相關文章
相關標籤/搜索