首頁  >  文章  >  後端開發  >  使用Python進行十六進位數字的解碼和編碼

使用Python進行十六進位數字的解碼和編碼

PHPz
PHPz轉載
2023-08-19 14:09:222619瀏覽

使用Python進行十六進位數字的解碼和編碼

在本文中,我們將學習如何使用Python解碼和編碼十六進位數字。

使用的方法

  • 使用 binascii 模組

  • 使用base64模組

#方法1:使用Binascii模組

在binascii模組中,有幾種方法可以在二進位和不同的ASCII編碼二進位表示之間進行轉換。

如果你只需要對一個原始的十六進位數字字串進行編碼或解碼操作,可以使用 binascii 模組

演算法(步驟)

以下是執行所需任務的演算法/步驟。 −

  • 使用import關鍵字導入binascii模組。

  • 建立一個變數來儲存輸入的位元組字串

  • 使用binascii模組的b2a_hex()函數將輸入的位元組字串編碼為十六進位數字。

  • 列印輸入位元組字串的結果十六進位數字。

  • 使用binascii模組的a2b_hex()函數將上述十六進位數字解碼為位元組字串。

Example

的中文翻譯為:

範例

以下程式使用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'

方法2:使用base64模組

base64 模組也具有類似的功能。它還可以對原始的十六進制數字進行編碼或解碼。

演算法(步驟)

以下是執行所需任務的演算法/步驟。 −

  • 使用import關鍵字導入base64模組。

  • 建立一個變數來儲存輸入的位元組字串

  • 使用 base64 模組的 b16encode() 函數將輸入的位元組字串編碼為十六進位數字(hexdigits)。

  • 列印輸入位元組字串的結果十六進位數字。

  • 使用base64模組的b16decode()函數將上述十六進位數字解碼為位元組字串並列​​印。

Example

的中文翻譯為:

範例

以下程式將輸入的位元組字串編碼為十六進位數字,並使用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。

Example

的中文翻譯為:

範例

以下程式使用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中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除