在本文中,我们将学习如何使用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中文网其他相关文章!