[CTF]base64編碼
---------------------
作者:adversity`
來源:CSDN
原文:https://blog.csdn.net/qq_40836553/article/details/79383488
關於base64
Base64是網絡上最常見的用於傳輸8Bit字節碼的編碼方式之一,base64就是一種基於64個可打印字符來表示二進制數據的表示方法。由於2的6次方等於64,所以每6個比特為一個單元,對應某個可打印字符。三個字節有24個比特,對應4個base64單元,即3個字節可表示4個可打印字符。它可用來作為電子郵件的傳輸編碼。在base64中的可打印字符包括字母A-Z、a-z、數字0-9,這樣共有62個字符,此外兩個可打印符號在不同系統中而不同。
例如:編碼‘Man'
在此例中,base64算法將3個字符編碼轉為4個字符
base64索引表:
如果要編碼的字節數不能被3整除,最后會多出1個或2個字節,那么可以使用下面的方法進行處理:先使用0字節值在末尾補足,使其能夠被3整除,然后再進行base64的編碼。在編碼后的base64文本后加上一個或兩個“=”號,代表補足的字節數。也就是說,當最后剩余一個八位字節(一個byte)時,最后6位的base64字節塊有四位是0值,最后附加上兩個等號;如果最后剩余兩個八位字節(2byte)時,最后一個6位的base字節塊有兩位是0值,最后附加一個等號
例如:
當看到==號的加密方式時,可以考慮base64。例:cTZ1NQ==解碼之后為q5u5。
關於base32:
base32中只有大寫字母(A-Z)和數字234567
關於base16:
base16中只有數字0-9以及大寫字母ABCDEF