Base64是一種用64個(gè)(可打印的)字符來表示任意二進(jìn)制數(shù)據(jù)的方法摆霉。
原理:
產(chǎn)生一個(gè)Base64的索引表,字符選用了”A-Z别洪、a-z叨恨、0-9、+蕉拢、/” 64個(gè)可打印字符特碳,這是標(biāo)準(zhǔn)的Base64協(xié)議規(guī)定;
第一步,將待轉(zhuǎn)換的字符串每三個(gè)字節(jié)分為一組晕换,每個(gè)字節(jié)占8bit午乓,那么共有24個(gè)二進(jìn)制位。
第二步闸准,將上面的24個(gè)二進(jìn)制位每6個(gè)一組益愈,共分為4組。
第三步夷家,在每組前面添加兩個(gè)0蒸其,每組由6個(gè)變?yōu)?個(gè)二進(jìn)制位,總共32個(gè)二進(jìn)制位库快,即四個(gè)字節(jié)摸袁。
第四步,根據(jù)Base64編碼對照表獲得對應(yīng)的值义屏。
從上面的步驟我們發(fā)現(xiàn):
Base64字符表中的字符原本用6個(gè)bit就可以表示靠汁,現(xiàn)在前面添加2個(gè)0,變?yōu)?個(gè)bit闽铐,會(huì)造成一定的浪費(fèi)蝶怔。因此,Base64編碼之后的文本兄墅,要比原文大約三分之一踢星。
為什么使用3個(gè)字節(jié)一組呢?因?yàn)?和8的最小公倍數(shù)為24隙咸,三個(gè)字節(jié)正好24個(gè)二進(jìn)制位沐悦,每6個(gè)bit位一組,恰好能夠分為4組扎瓶。
最后一句話簡單總結(jié)就是:把二進(jìn)制拆分成6bit一組,不足的高位補(bǔ)0,然后去64個(gè)字符表去對照產(chǎn)生新的數(shù)據(jù).
作用:
在參數(shù)傳輸?shù)倪^程中經(jīng)常遇到的一種情況:使用全英文的沒問題所踊,但一旦涉及到中文就會(huì)出現(xiàn)亂碼情況。與此類似概荷,網(wǎng)絡(luò)上傳輸?shù)淖址⒉蝗强纱蛴〉淖址醯海热缍M(jìn)制文件、圖片等误证。Base64的出現(xiàn)就是為了解決此問題继薛,它是基于64個(gè)可打印的字符來表示二進(jìn)制的數(shù)據(jù)的一種方法。
base64不能算是一種加密方式,就算是自定義對照表.