首页 > 后端开发 > Python教程 > 使用Python进行十六进制数字的解码和编码

使用Python进行十六进制数字的解码和编码

PHPz
发布: 2023-08-19 14:09:22
转载
2656 人浏览过

使用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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板