07 基礎篇-Base64

用記事本打開exe疲恢、jpgpdf這些文件時睹晒,我們都會看到一大堆亂碼趟庄,因為二進制文件包含很多無法顯示和打印的字符,所以伪很,如果要讓記事本這樣的文本處理軟件能處理二進制數(shù)據(jù)戚啥,就需要一個二進制到字符串的轉換方法。Base64是一種最常見的二進制編碼方法锉试。

一猫十、Base64是什么

Base64是一種用64個字符來表示任意二進制數(shù)據(jù)的方法。

二呆盖、Base64編碼與解碼

  • 所有的數(shù)據(jù)都能被編碼為只用64+1個字符就能表示的文本

    64個字符指的是將[A-Za-z0-9+/]依次排序拖云,以0-63為其序號

    base64對照表.png

    1個字符指的是=號,其作用是補位用的应又。

  • Base64編碼

    其技術原理呢是將數(shù)據(jù)轉化為二進制宙项,每3個字節(jié)一組,1字節(jié)=8bit株扛,那么一共是3x8=24bit尤筐,將最大的序列號63轉化為二進制是111111邑贴,剛好6個bit,正好劃為4組:


    這樣我們得到4個數(shù)字作為索引叔磷,然后查表拢驾,獲得相應的4個字符,就是編碼后的字符串改基。
    Base64編碼會把3字節(jié)的二進制數(shù)據(jù)編碼為4字節(jié)的文本數(shù)據(jù)繁疤,雖然長度增加33%,但是編碼后的文本數(shù)據(jù)可以在郵件正文秕狰、網(wǎng)頁等直接顯示稠腊。
    但是有一個問題來了,如果要編碼的二進制數(shù)據(jù)不是3的倍數(shù)鸣哀,最后會剩下1個或2個字節(jié)怎么辦架忌?
    這時候“1”字符的作用就體現(xiàn)出來了,Base64用\x00字節(jié)(二進制00000000)在末尾補足后我衬,再在編碼的末尾加上1個或2個=號叹放,表示補了多少字節(jié),解碼的時候挠羔,會自動去掉井仰。

  • Base64解碼

將上面的倒著解回去就行了
最新的瀏覽器提供了自動生成base64的方法atobbtob

btoa('a123')
// => "YTEyMw=="
atob('YTEyMw==')
// => "a123"

三、Base64的應用

  • 密鑰
    對證書來說破加,特別是根證書俱恶,一般都是作Base64編碼的,因為它要在網(wǎng)上被許多人下載范舀。電子郵件的附件一般也作Base64編碼的合是,因為一個附件數(shù)據(jù)往往是有不可見字符的。
  • 密文
    Base64經(jīng)常用于一些JS加密锭环,有些JS生成的cookie就是經(jīng)過Base64編碼的聪全,有些JS生成返回的數(shù)據(jù)也是Base64。
  • 圖片

    直接上例子:
    抓百度網(wǎng)盤標題的時候田藐,發(fā)現(xiàn)標題是圖片荔烧,直接審查元素,發(fā)現(xiàn)是BASE64生成的


    標題

    base64生成
  • 普通數(shù)據(jù)
    有些把賬號密碼拿去Base64編碼汽久,雖然沒什么用,懂得人一眼就能看出來踊餐,但是編碼后的數(shù)據(jù)景醇,還是會造成一些干擾,對不懂的人更會造成極大困惑吝岭。
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末三痰,一起剝皮案震驚了整個濱河市吧寺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌散劫,老刑警劉巖稚机,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異获搏,居然都是意外死亡赖条,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進店門常熙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來纬乍,“玉大人,你說我怎么就攤上這事裸卫》卤幔” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵墓贿,是天一觀的道長茧泪。 經(jīng)常有香客問我,道長聋袋,這世上最難降的妖魔是什么调炬? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮舱馅,結果婚禮上缰泡,老公的妹妹穿的比我還像新娘。我一直安慰自己代嗤,他們只是感情好棘钞,可當我...
    茶點故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著干毅,像睡著了一般宜猜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上硝逢,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天姨拥,我揣著相機與錄音,去河邊找鬼渠鸽。 笑死叫乌,一個胖子當著我的面吹牛,可吹牛的內容都是我干的徽缚。 我是一名探鬼主播憨奸,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼凿试!你這毒婦竟也來了排宰?” 一聲冷哼從身側響起似芝,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎板甘,沒想到半個月后党瓮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡盐类,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年寞奸,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片傲醉。...
    茶點故事閱讀 40,146評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡蝇闭,死狀恐怖,靈堂內的尸體忽然破棺而出硬毕,到底是詐尸還是另有隱情呻引,我是刑警寧澤,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布吐咳,位于F島的核電站逻悠,受9級特大地震影響,放射性物質發(fā)生泄漏韭脊。R本人自食惡果不足惜童谒,卻給世界環(huán)境...
    茶點故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望沪羔。 院中可真熱鬧饥伊,春花似錦、人聲如沸蔫饰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽篓吁。三九已至茫因,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間杖剪,已是汗流浹背冻押。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盛嘿,地道東北人洛巢。 一個月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像孩擂,于是被迫代替她去往敵國和親狼渊。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,107評論 2 356

推薦閱讀更多精彩內容

  • 每個文本編輯器都有默認的編碼方式(比如 UTF-8 編碼)类垦,當我們保存文檔的時候狈邑,可以選擇編碼方式,如果沒有特意選...
    _于曼麗_閱讀 1,524評論 0 1
  • ORA-00001: 違反唯一約束條件 (.) 錯誤說明:當在唯一索引所對應的列上鍵入重復值時蚤认,會觸發(fā)此異常米苹。 O...
    我想起個好名字閱讀 5,323評論 0 9
  • CTF中那些腦洞大開的編碼和加密 0x00 前言 正文開始之前先閑扯幾句吧,玩CTF的小伙伴也許會遇到類似這樣的問...
    查無此人asdasd閱讀 6,015評論 0 19
  • 經(jīng)年故紙遺長恨砰琢,轉眼成非 蘸嘶,轉眼成非,昨日深紅已半飛陪汽。 絲弦和盡黃昏雨训唱,一縷相催,一縷相催 挚冤,漸有心思散作灰况增。
    baobei朵朵閱讀 258評論 0 0
  • 今天中午天陰沉沉的澳骤。日跟進也已完成,坐著無趣澜薄,就想給自己找點事兒干为肮。這幾天缺水上火,嘴上都起泡了肤京。出門吧颊艳,...
    人淡如菊chen閱讀 2,534評論 0 4