通過Base64編碼的長度計算檔案大小

2021-10-19 15:55:35 字數 713 閱讀 2773

在一些業務場景下,我們會將檔案或轉化為base64編碼進製傳輸,而業務中有需要對檔案的大小進行限制,如何在不進行解碼的情況下判斷出檔案的大小呢。

base64編碼要求把3個8位位元組(38=24)轉化為4個6位的位元組(46=24),之後在6位的前面補兩個0,形成8位乙個位元組的形式。

如果剩下的字元不足3個位元組,則用0填充,輸出字元使用'=',因此編碼後輸出的文字末尾可能會出現1或2個'='。

為了保證所輸出的編碼位可讀字元,base64制定了乙個編碼表,以便進行統一轉換。編碼表的大小為2^6=64,這也是base64名稱的由來。

由base64編碼的性質可知,原檔案在經由base64編碼後,體積會增長1/3。 1 → 4/3

反之,base64字串中的4個字元即對應原檔案的3位元組。

那麼計算原檔案的大小只需要得出base64字串的長度,再乘以0.75即可。該方法可能存在1byte的大小誤差,計算出的大小可能比真實大小多1byte,也可能與真實檔案大小正好相等。

參考:

base64編碼長度計算

先看乙個來自牛客網的題目 在網路傳輸資料時,經常需要將二進位制資料轉換為乙個可列印字串。一般用到的可列印字元集合包含64個字元,因此又稱為base64表示法。現有乙個char陣列長度為12,要將它表示為base64字串,請問base64字串最少需要 個char 如果char陣列長度為20,則需要 個...

base64編碼 動畫演示 Base 64 編碼

base64 是一種十分流行的編碼方式,僅僅使用 64 個字元加等號 就可以以文字的形式表示所有的二進位制資料了,因為它能夠把二進位制格式通過編碼轉換成可見字元,所有我們就可以通過的把二進位制格式比如,檔案等通過 base64 編碼然後通過文字的形式共享出去,是不是很神奇呀。把輸入的資料轉換成 二進...

Base64編碼演算法

base64要求把每三個8bit的位元組轉換為四個6bit的位元組 3 8 4 6 24 然 後把6bit再添兩位高位0,組成四個8bit的位元組,也就是說,轉換後的字串理 論上將要比原來的長1 3。轉換後,我們用乙個碼表來得到我們想要的字串 也就是最終的base64編碼 這個表是這樣的 0 a 1...