base64是一種基於64個可打印字符來表示二進制數據的方法。
它是目前網絡上最常見的用於傳輸8Bit字節碼的編碼方式之一。
Python base64
base64 是 python 中的內置模塊
使用方法:
base64.b64encode() # 將bytes類型數據進行base64編碼,返回編碼后的bytes類型數據。
base64.b64deocde() # 將base64編碼后的bytes類型數據進行解碼,返回解碼后的bytes類型數據。
>>> import base64
>>> byte = bytes('雲端一夢', encoding='gbk')
>>> byte
b'\xd4\xc6\xb6\xcb\xd2\xbb\xc3\xce'
>>> b64 = base64.b64encode(byte)
>>> b64
b'1Ma2y9K7w84='
>>> byte = base64.b64decode(b64)
>>> byte
b'\xd4\xc6\xb6\xcb\xd2\xbb\xc3\xce'
>>> str(byte, encoding='gbk')
'雲端一夢'
加密規則
1、把3個字節重組成4個字節:38=>46。每個字節高兩位補0。
例如:11111111 11111111 11111111
base64加密=> 00111111 00111111 00111111 00111111
每個字節只有六位有效位,最大值不超過 2^6 = 64
轉化成十進制后,查編碼表得到最終字符:////
2、每76個字符加一個換行符。
3、最后的結束符也要處理。
Base64編碼表
| 索引 | 對應字符 | 索引 | 對應字符 | 索引 | 對應字符 | 索引 | 對應字符 |
|---|---|---|---|---|---|---|---|
| 0 | A | 16 | Q | 32 | g | 48 | w |
| 1 | B | 17 | R | 33 | h | 49 | x |
| 2 | C | 18 | S | 34 | i | 50 | y |
| 3 | D | 19 | T | 35 | j | 51 | z |
| 4 | E | 20 | U | 36 | k | 52 | 0 |
| 5 | F | 21 | V | 37 | l | 53 | 1 |
| 6 | G | 22 | W | 38 | m | 54 | 2 |
| 7 | H | 23 | X | 39 | n | 55 | 3 |
| 8 | I | 24 | Y | 40 | o | 56 | 4 |
| 9 | J | 25 | Z | 41 | p | 57 | 5 |
| 10 | K | 26 | a | 42 | q | 58 | 6 |
| 11 | L | 27 | b | 43 | r | 59 | 7 |
| 12 | M | 28 | c | 44 | s | 60 | 8 |
| 13 | N | 29 | d | 45 | t | 61 | 9 |
| 14 | O | 30 | e | 46 | u | 62 | + |
| 15 | P | 31 | f | 47 | v | 63 | / |
