編碼類型轉(zhuǎn)換
常見編碼類型
- 以
41
開頭的字符串一般是hex
編碼; - 以
T
開頭的字符串一般是base58
編碼, 如波場幣地址TWRwG6JGU7sw4NrjprZVkgMp4tHNejEU7Y
; - 以
0x
開頭的字符串一般是hex
編碼, 如以太網(wǎng)地址0x0ca19fd64c08f3dfc5fc3080597d85b04cbfbf93
;
編碼格式的轉(zhuǎn)換
-
將二進制編碼(
bytes
類型) 與base58`編碼相互轉(zhuǎn)化;import base58 # 將二進制字符串轉(zhuǎn)化成base58 # 輸出的字符串前面會帶有b,如 b'TGvfjtHih9kf15R2f3fJDW8P8eQEa764uE' base58.b58encode_check(bytes_string) # 輸出的字符串前面沒有 b,如 'TGvfjtHih9kf15R2f3fJDW8P8eQEa764uE' base58.b58encode_check(bytes_string).decode('utf-8') # 將base58轉(zhuǎn)化成二進制 base58.b58decode_check('TJRabPrwbZy45sbavfcjinPJC18kjpRTv8')
-
將 十六進制的字符串轉(zhuǎn)換成二進制可以使用
bytes.fromhex()
, 需要把十六進制最前面的0x
去掉再轉(zhuǎn)換; 把二進制類型轉(zhuǎn)化為十六進制, 只需要調(diào)用.hex()
即可, 例如:def hex2bytes(string): return bytes.fromhex(string) hex_str = 'a7f1f03bf081b4f4e8b0993a8114c1987de6d5bf1582445fe048475dff942fd0' bytes_str = hex2bytes(hexstr) string = bytes_str.hex() print(string) # 'a7f1f03bf081b4f4e8b0993a8114c1987de6d5bf1582445fe048475dff942fd0'