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)中而不同。
簡(jiǎn)陽(yáng)網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
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家族中,有先寫的是base64,沒(méi)有189的是base32,
base64中包含大寫字母(A-Z)、小寫字母(a-z)、數(shù)字0——9以及+/;
base32中只有大寫字母(A-Z)和數(shù)字234567
base32索引表:
base16中只有數(shù)字0-9以及大寫字母ABCDEF。
標(biāo)題名稱:密碼學(xué)基礎(chǔ)之base編碼家族介紹
文章源于:http://jinyejixie.com/article22/gpeicc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、做網(wǎng)站、App開(kāi)發(fā)、域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)