想將一個十六進制字符串解碼成一個字節字符串或者將一個字節字符串編碼成一個十六進制字符串
1)只是簡單的解碼或編碼一個十六進制的原始字符串,可以使用 binascii模塊
>>> s = b'hello' >>> # Encode as hex >>> import binascii >>> h = binascii.b2a_hex(s) >>> h b'68656c6c6f' >>> binascii.a2b_hex(h) b'hello' >>>
2)類似的功能同樣可以在base64 模塊中找到
>>> import base64 >>> h = base64.b16encode(s) >>> h b'68656C6C6F' >>> base64.b16decode(h) b'hello' >>>
3)大部分情況下,通過使用上述的函數來轉換十六進制是很簡單的。上面兩種技術的主要不同在於大小寫的處理。函數base64.b16decode() 和base64.b16encode() 只能操作大寫形式的十六進制字母,而binascii 模塊中的函數大小寫都能處理
4)還有一點需要注意的是編碼函數所產生的輸出總是一個字節字符串。如果想強制以Unicode 形式輸出,你需要增加一個額外的界面步驟
>>> h = base64.b16encode(s) >>> print(h) b'68656C6C6F' >>> print(h.decode('ascii')) 68656C6C6F