Python字符形式保存的16进制数据转字节

发布于 / Python / 2 条评论

遇到一个需求,将抓包文件pcap中TLS握手包的证书提取出来。将pcap转成了XML,成功提取到了16进制保存的证书文件。就像下面这样:

image.png

但是要转成字节数组才能使用。使用如下代码可以实现转换:

# 这一步目的是转成10进制大数。如果你的字符串前面有‘0x’可以忽略
value_int = int('0x' + value, 16)
    
# 这一步是转字节。字符串里两个字符是一个字节,所以长度是1/2,byteorder=big是大端存储
# 这里长度要注意,如果你的原字符串有0x,则要减去两个后再除以2
value_bin = value_int.to_bytes(length=int(len(value)/2), byteorder='big')

image.png

成功

转载原创文章请注明,转载自: 斐斐のBlog » Python字符形式保存的16进制数据转字节
  1. 哥斯拉

    学到了,好像文件比较大的话,速度有些慢

    1. kidultff
      @哥斯拉 没尝试过大文件,不确定大文件处理的时候会不会在转int的地方爆掉,可以尝试写个循环两个字符组一个字节来提取