在本文中,我們將學習如何使用Python解碼和編碼十六進位數字。
使用 binascii 模組
使用base64模組
在binascii模組中,有幾種方法可以在二進位和不同的ASCII編碼二進位表示之間進行轉換。
如果你只需要對一個原始的十六進位數字字串進行編碼或解碼操作,可以使用 binascii 模組。
以下是執行所需任務的演算法/步驟。 −
使用import關鍵字導入binascii模組。
建立一個變數來儲存輸入的位元組字串。
使用binascii模組的b2a_hex()函數將輸入的位元組字串編碼為十六進位數字。
列印輸入位元組字串的結果十六進位數字。
使用binascii模組的a2b_hex()函數將上述十六進位數字解碼為位元組字串。
以下程式使用b2a_hex()和a2b_hex()函數將輸入的位元組字串編碼為十六進位數字,並將其解碼回位元組字串。
# importing binascii module import binascii # input byte string inputByteString = b'tutorialspoint python' # encoding input byte string into hexadecimal digits hexdigits = binascii.b2a_hex(inputByteString) # printing the resultant hexadecimal digits of the byte string print(hexdigits) # decoding hexadecimal digits back into byte string print(binascii.a2b_hex(hexdigits))
執行上述程式時,將產生以下輸出 -
b'7475746f7269616c73706f696e7420707974686f6e' b'tutorialspoint python'
base64 模組也具有類似的功能。它還可以對原始的十六進制數字進行編碼或解碼。
以下是執行所需任務的演算法/步驟。 −
使用import關鍵字導入base64模組。
建立一個變數來儲存輸入的位元組字串。
使用 base64 模組的 b16encode() 函數將輸入的位元組字串編碼為十六進位數字(hexdigits)。
列印輸入位元組字串的結果十六進位數字。
使用base64模組的b16decode()函數將上述十六進位數字解碼為位元組字串並列印。
以下程式將輸入的位元組字串編碼為十六進位數字,並使用b16encode()和b16decode()函數將其解碼回位元組字串 -
# importing base64 module import base64 # input byte string inputByteString = b'tutorialspoint python' # encoding input byte byte string into hexadecimal digits # using b16encode() function of base64 module hexdigits = base64.b16encode(inputByteString) # printing the resultant hexadecimal digits of the byte string print(hexdigits) # decoding hexadecimal digits back into byte string print(base64.b16decode(hexdigits))
執行上述程式時,將產生以下輸出 -
b'7475746f7269616c73706f696e7420707974686f6e' b'tutorialspoint python'
使用所描述的函數,轉換為十六進位和從十六進位轉換,大部分情況下都很簡單。 大小寫摺法 是兩個方法最不同的地方。與binascii中的操作相比,base64.b16decode() 和 base64.b16encode() 函數只能處理 大寫 的十六進位字母。
同樣重要的是要記住編碼函數的輸出始終是位元組字串。您可能需要包含額外的解碼步驟來強制將其輸出為Unicode。
以下程式使用decode函數將十六進位數字解碼為ASCII格式:
# importing base64 module import base64 # input byte string inputByteString = b'tutorialspoint python' # encoding input byte byte string into hexadecimal digits # using b16encode() function of base64 module hexdigits = base64.b16encode(inputByteString) # printing the resultant hexadecimal digitsof the byte string print(hexdigits) # decoding hexadecimal digits in ASCII format using the decode() function print(hexdigits.decode('ascii'))
執行上述程式時,將產生以下輸出 -
b'7475746F7269616C73706F696E7420707974686F6E' 7475746F7269616C73706F696E7420707974686F6E
b16decode()和a2b_hex()方法在解碼十六進位數字時接受位元組或Unicode文字作為輸入。然而,這些字串只能包含已經進行ASCII編碼的十六進位數字。
在這篇文章中,我們學習如何使用Python來解碼和編碼數字的十六進位表示法。我們也學習如何使用decode()方法來解碼十六進位數字的ASCII表示。
以上是使用Python進行十六進位數字的解碼和編碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!