python 将字节字符串转换成十六进制字符串

枫铃3年前 (2021-09-30)Python253

想将一个十六进制字符串解码成一个字节字符串或者将一个字节字符串编码成一个十六进制字符串

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 模块中找到

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> 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

相关文章

零基础学Python:函数的参数详解

必备参数关键字参数默认参...

python多进程编程常用到的方法

python中的多线程其实并不是真正的多线程,如果想要充分地使用多核CPU资源,在python中大部分情况需要使用多进程。pyth...

python中使用for循环,while循环,一条命令打印99乘法表

用for循环打印九九乘法表: for i in range (1,10): for j in range(1,10):...

python实现ldap接入

需要提前安装python-ldap模块 python接入ldap其实分了几个步骤: 1、使用一个管理员账户登陆到ldap 2、使用一个字段...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。