<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 195, comments - 34, trackbacks - 0, articles - 1
    Base64編碼方法

     Base64編碼的作用:由于某些系統(tǒng)中只能使用ASCII字符。Base64就是用來將非ASCII字符的數(shù)據(jù)轉(zhuǎn)換成ASCII字符的一種方法。它使用下面表中所使用的字符與編碼。
      Base64編碼方法要求把每三個(gè)8Bit的字節(jié)轉(zhuǎn)換為四個(gè)6Bit的字節(jié),其中,轉(zhuǎn)換之后的這四個(gè)字節(jié)中每6個(gè)有效bit為是有效數(shù)據(jù),空余的那兩個(gè)bit用0補(bǔ)上成為一個(gè)字節(jié)。因此Base64所造成數(shù)據(jù)冗余還是比較嚴(yán)重的,采用這中編碼方法會(huì)使得編碼后的數(shù)據(jù)長度變成編碼前長度的三分之四倍。但是,Base64是當(dāng)今比較流行的編碼方法,因?yàn)樗幤饋?#8220;速度快而且簡單”,這是網(wǎng)上的說法,我更覺得它是歷史遺留下來的原因。
      舉個(gè)例子,有三個(gè)字節(jié)的原始數(shù)據(jù):aaaaaabb bbbbccccc ccdddddd(這里每個(gè)字母表示一個(gè)bit位)
      那么編碼之后會(huì)變成:      00aaaaaa 00bbbbbb 00cccccc 00dddddd
      上面的例子只是說明了Base64的移位方式,因?yàn)槲艺Z言表達(dá)能力較差,唯恐造成誤解,故舉此例。
    這還沒完,讀者現(xiàn)在只是了解了Base64編碼方法的一部分,還有一個(gè)Base64編碼表需要了解,編碼表是這樣的:
    編號(hào) 字符 編號(hào) 字符 編號(hào) 字符 編號(hào) 字符 編號(hào) 字符l
    0 A 16 Q 32 g 48 w (pad) =
    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 /
      現(xiàn)在先別管上面這個(gè)表,在知道了移位方式之后,請(qǐng)?jiān)倏磦€(gè)例子。
      有三個(gè)字節(jié)的原始數(shù)據(jù):10101101 10111010 01110110
    編碼之后的數(shù)據(jù)是:        00101011 00011011 00101001 00110110 (還是數(shù)字看起來比較整齊~)
    編碼之后的這四個(gè)字節(jié)都轉(zhuǎn)換成為十進(jìn)制數(shù)是:
               43                   27                 42                   54
      現(xiàn)在用這四個(gè)數(shù)去上面那個(gè)編碼表里找,找到的字符是r b q 2,于是乎,三個(gè)字節(jié)的原始數(shù)據(jù):10101101 10111010 01110110經(jīng)Base64編碼方法編碼之后的結(jié)果是rbq2。
      還有很重要的一點(diǎn)要說明,如果原文的字節(jié)數(shù)量如果不是3的倍數(shù),不夠的地方可以用全0來補(bǔ)足來湊成6位一組的字節(jié)。如前面所述,Base64編碼方法要求把每三個(gè)8Bit的字節(jié)轉(zhuǎn)換為四個(gè)6Bit的字節(jié),所以當(dāng)轉(zhuǎn)換后的字節(jié)數(shù)不4的倍數(shù)時(shí),就要使用“=”來補(bǔ)足,因?yàn)榫幋a前的一個(gè)字節(jié)只少可以對(duì)應(yīng)編碼后的二個(gè)字節(jié),一個(gè)正確Base64編碼最多只會(huì)有兩個(gè)“=”。所以對(duì)于Base64解碼,就是把上面的過程逆著來一遍即可。
     



    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 午夜爱爱免费视频| 国产aa免费视频| 色婷婷亚洲一区二区三区| 亚洲一卡2卡3卡4卡国产网站| 亚洲一区二区三区日本久久九| 亚洲AV人无码综合在线观看| 国产精品国产午夜免费福利看| 午夜两性色视频免费网站| 特级精品毛片免费观看| 国产精成人品日日拍夜夜免费| 黄色一级毛片免费看| 免费国产高清毛不卡片基地 | 在线观看免费亚洲| 性做久久久久免费观看| 四虎影视免费永久在线观看| 亚洲黄黄黄网站在线观看| 成人网站免费观看| 午夜私人影院免费体验区| 免费a在线观看播放| 亚洲中文字幕无码永久在线| 国产一级淫片a免费播放口之| 免费va在线观看| 亚洲熟女少妇一区二区| 亚洲国产精品无码久久青草| 成人毛片18女人毛片免费视频未| 无码精品一区二区三区免费视频 | 亚洲国产精品网站在线播放| 国产成人综合久久精品亚洲| a在线视频免费观看在线视频三区| 国产永久免费高清在线| 成人久久久观看免费毛片| 高清永久免费观看| 精品国产免费一区二区三区| 免费国产黄网站在线看| 中文在线观看免费网站| 精品免费久久久久久久| 国产人成免费视频| 亚洲va久久久噜噜噜久久男同| 日本亚洲欧洲免费天堂午夜看片女人员 | 亚欧乱色国产精品免费视频| 亚洲精品免费视频|