小编Kok*_*ong的帖子

Python:XOR十六进制字符串

可能重复:
python中十六进制数的按位异或

我试图在Python中XOR两个十六进制字符串,并不知道从哪里开始.

我有两个十六进制字符串:

a = "32510ba9a7b2bba9b8005d43a304b5714cc0bb0c8a34884dd91304b8ad40b62b07df44ba6e9d8a2368e51d04e0e7b207b70b9b8261112bacb6c866a232dfe257527dc29398f5f3251a0d47e503c66e935de81230b59b7afb5f41afa8d661cb"
b = "32510ba9babebbbefd001547a810e67149caee11d945cd7fc81a05e9f85aac650e9052ba6a8cd8257bf14d13e6f0a803b54fde9e77472dbff89d71b57bddef121336cb85ccb8f3315f4b52e301d16e9f52f90"
Run Code Online (Sandbox Code Playgroud)

我应该用这个吗?

  1. return "".join([chr((x) ^ (y)) for (x,y) in zip(a[:len(b)], b)])
  2. return "".join([chr(ord(x) ^ ord(y)) for (x, y) in zip(a[:len(b)], b)])

我不明白上面两个代码的区别.为什么chrord?我也见过人们使用int(hex,16).

python hex ascii cryptography xor

20
推荐指数
2
解决办法
5万
查看次数

标签 统计

ascii ×1

cryptography ×1

hex ×1

python ×1

xor ×1