这是个大坑啊,会慢慢填的

Python2和python3感觉差别还是挺大的(没有标注的代码默认是python3)
Python2 在线工具 | 菜鸟工具 (runoob.com)

python3字节转十六进制字符串

1
2
3
s=b"flag"
print(s.hex())
#打印结果:666c6167

十六进制数字转十进制(int函数的使用)

1
2
3
4
s=b"flag"
x=s.hex()
print(int(x,16)) # x原本是十六进制转换为十进制
#打印结果:1718378855
1
2
3
4
5
6
>>> int('12',16)        # 如果是带参数base的话,12要以字符串的形式进行输入,12 为 16进制 
18
>>> int('0xa',16)
10
>>> int('10',8)
8

字符串转字节

1
2
3
s="flag"
print(s.encode())
#打印结果:b'flag'

字节转字符串

1
2
3
s=b"flag"
print(s.decode(encoding='utf-8'))
#打印结果:flag

字符转数字

1
2
print(ord('a'))
#打印结果:97

python2字符串转十六进制

1
2
3
4
#Python2
s="flag"
print s.encode('hex')
#打印结果:666c6167

十六进制字符串和比特流相互转换

1
2
3
4
5
6
from binascii import *
c1='56c36'
c1=unhexlify(c1)
print(c1) #b'V\xc3j'
c1=hexlify(c1)
print(c1) #b'56c36a' 这个也是比特形式的

整数转二进制bin()
bin()返回一个整数 int 或者长整数 long int 的二进制表示。

1
2
3
4
>>>bin(10)
'0b1010'
>>> bin(20)
'0b10100'

[参考博客](python3 字符串、十六进制字符串、数字、字节之间的转换_羊驼的博客笔记-CSDN博客_python 十六进制字符串转十六进制)
参考书目:CTF特训营