Base64編碼原理與應用

2021-07-30 01:20:36 字數 1061 閱讀 8410

標準base64只有64個字元(英文大小寫、數字和+、/)以及用作字尾等號;

base64是把3個位元組變成4個可列印字元,所以base64編碼後的字串一定能被4整除(不算用作字尾的等號);

等號一定用作字尾,且數目一定是0個、1個或2個。這是因為如果原文長度不能被3整除,base64要在後面新增\0湊齊3n位。

為了正確還原,新增了幾個\0就加上幾個等號。顯然新增等號的數目只能是0、1或2;

嚴格來說base64不能算是一種加密,只能說是編碼轉換。使用base64的初衷。是為了方便把含有不可見字串的資訊用可見字串表示出來,以便複製貼上;

base64是一種加料置位加密法,那為什麼叫base64呢?因為無論明文是什麼(比如漢字,特殊符號等),加密後的密文都只會變成字母a-z、a-z和0-9 和+和/這64個字元,被他加密體後積一般會變成原來的4/3

以乙個簡單的』ast』為例,簡單介紹base64編碼的實現原理

假設有3個字元,首先先將他換成10進製ascii碼,然後轉成2進製,少位用0補齊,保證8位。

因為ascii碼大小是一位元組也就是8位,3個8位。又因為3*8=4*6,我們給他分成4分,每份6位。如果少位都用0補齊。

把6位碼前2位加兩個0,比如010000轉完後就是00010000,這對計算機來說比較重要,變成了8位碼。

將4個8位(也就是一位元組)碼按照rfc裡的base64標準換算,下面也提供了標準表。

這樣我們就得到了qvnu,也就是ast加密的結果。

那麼有3n個字元就是分別把3個轉成4個了,那假如有3n+1個字元怎麼辦呢?

base64是這樣規定的,剩下的用「=」補齊。

比如a這個字元轉後為01000001末尾加4個0變為010000|010000查表得qq差2個用=補齊。

因此a加密後是qq==,對於3n+2情況

同理as加密後為qvm=

這樣就有了所有情況了。

Base64編碼原理與應用

php版本 function base64 url encode data function base64 url decode data 可以看出,base64 url 是標準base64編碼的乙個變種,分別用 替換標準base64編碼結果中的 並刪除結果最後的 本文是圍繞這兩個問題思考和實踐的結...

BASE64 編碼原理

unit ubase64 編碼原理 將3個位元組轉換成4個位元組 3 x 8 24 4x6 先讀入3個位元組,每讀乙個位元組,左移8位,再右移四次,每次6位,這樣就有4個 位元組了。解碼原理 將4個位元組轉換成3個位元組,先讀入4個6位 用或運算 每次左 移6位,再右移3次,每次8位,這樣就還原了。...

Base64編碼原理

一 base64編碼原理 1 base64編碼原理簡單介紹 base64要求把每三個8bit的位元組轉換為四個6bit的位元組 3 8 4 6 24 然後把6bit再添兩位高位0,組成四個8bit的位元組,也就是說,轉換後的字串理論上將要比原來的長1 3。編碼原理如下所示 1 base64的編碼都是...