base64.顧名思義,就是基于64個(gè)可打印字符來(lái)表示二進(jìn)制數(shù)據(jù)的一種方法。(它不是加密算法)。對(duì)于64個(gè)打印字符,我們字需要6個(gè)二進(jìn)制位就可以完全表示了。那么我們?nèi)绾卫?個(gè)二進(jìn)制位來(lái)表示只需要6個(gè)二進(jìn)制位就可以完全表示的可打印字符呢?由于2的6次方等于64,所以我們可以將每6個(gè)位元為一個(gè)單元,對(duì)應(yīng)某個(gè)可打印字符。三個(gè)字節(jié)有24個(gè)位元,對(duì)應(yīng)于4個(gè)Base64單元,即3個(gè)字節(jié)需要用4個(gè)可打印字符來(lái)表示(一般的ASCII碼中一個(gè)字符有8位,但在這64個(gè)字符中只需要6位就可以表示出來(lái)了)。它可用來(lái)作為電子郵件的傳輸編碼。在Base64中的可打印字符包括字母A-Z、a-z、數(shù)字0-9,這樣共有62個(gè)字符,此外還有兩個(gè)可打印符號(hào)在不同的系統(tǒng)中而不同。
成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),成都做網(wǎng)站公司-創(chuàng)新互聯(lián)建站已向上1000+企業(yè)提供了,網(wǎng)站設(shè)計(jì),網(wǎng)站制作,網(wǎng)絡(luò)營(yíng)銷(xiāo)等服務(wù)!設(shè)計(jì)與技術(shù)結(jié)合,多年網(wǎng)站推廣經(jīng)驗(yàn),合理的價(jià)格為您打造企業(yè)品質(zhì)網(wǎng)站。Base64索引表:(原始表)
編碼過(guò)程實(shí)例:
編碼
上面的三個(gè)字節(jié)是原文,下面的四個(gè)字節(jié)是轉(zhuǎn)換后的Base64編碼,其前兩位均為0。
轉(zhuǎn)換后,我們?cè)偻ㄟ^(guò)將二進(jìn)制轉(zhuǎn)換為可打印字符來(lái)得到我們想要的字符串(也就是最終的Base64編碼)
我們可以看到經(jīng)過(guò)base64編碼后,字符串理論上比之前長(zhǎng)1/3,也就是原來(lái)的4/3。(除下面兩種情況外)。
如果要編碼的字節(jié)數(shù)不能被3整除,最后會(huì)多出1個(gè)或2個(gè)字節(jié),那么可以使用下面的方法進(jìn)行處理:先使用0字節(jié)值在末尾補(bǔ)足,使其能夠被3整除,然后再進(jìn)行base64的編碼。在編碼后的base64文本后加上一個(gè)或兩個(gè)'='號(hào),代表補(bǔ)足的字節(jié)數(shù)。也就是說(shuō),當(dāng)最后剩余一個(gè)八位字節(jié)(一個(gè)byte)時(shí),最后一個(gè)6位的base64字節(jié)塊有四位是0值,最后附加上兩個(gè)等號(hào);如果最后剩余兩個(gè)八位字節(jié)(2個(gè)byte)時(shí),最后一個(gè)6位的base字節(jié)塊有兩位是0值,最后附加一個(gè)等號(hào)。
base64編碼后一般都有=號(hào),而且密文長(zhǎng)度較長(zhǎng)的也基本是base64編碼。(base64編碼對(duì))(等號(hào)是根據(jù)使用情況不同而對(duì)64種可打印字符進(jìn)行修改的結(jié)果)。
base64的應(yīng)用
https://zh.wikipedia.org/zh/Base64
在base家族中,有base64,base32,base16還有傳說(shuō)中的base8
在base64的編碼中http://xiaoqin00.blog.51cto.com/10468367/1713961,我們說(shuō)到base64編碼是用64(2的6次方)個(gè)ASCII字符來(lái)表示256(2的8次方)個(gè)ASCII字符,也就是三位二進(jìn)制數(shù)組經(jīng)過(guò)編碼后變?yōu)樗奈坏腁SCII字符顯示,長(zhǎng)度比原來(lái)增加1/3。
同樣,base32就是用32(2的5次方)個(gè)特定ASCII碼來(lái)表示256個(gè)ASCII碼。所以,5個(gè)ASCII字符經(jīng)過(guò)base32編碼后會(huì)變?yōu)?個(gè)字符(公約數(shù)為40),長(zhǎng)度增加3/5.
base16就是用16(2的4次方)個(gè)特定ASCII碼表示256個(gè)ASCII字符。1個(gè)ASCII字符經(jīng)過(guò)base16編碼后會(huì)變?yōu)?個(gè)字符,長(zhǎng)度增加一倍。
在base家族中,有先寫(xiě)的是base64,沒(méi)有189的是base32,
base64中包含大寫(xiě)字母(A-Z)、小寫(xiě)字母(a-z)、數(shù)字0——9以及+/;
base32中只有大寫(xiě)字母(A-Z)和數(shù)字234567
base32索引表:
base16中只有數(shù)字0-9以及大寫(xiě)字母ABCDEF。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。