在Python 3中将字节转换为十六进制字符串的正确方法是什么?

时间:2017-11-20 22:34:02

标签: python python-3.x cryptography xor

我正在处理CryptoPals挑战,而且我遇到了挑战2第1集。我熟悉按位xoring,但我无法获得所需的结果十六进制字符串。这是我现在的职能:

def strxor(s1, s2):
    bytes1 = unhexlify(s1)
    bytes2 = unhexlify(s2)
    b = b""
    for c1, c2 in zip(bytes1, bytes2):
        b += bytes([c1^c2])
    return hexlify(b)

它当前返回所需的十六进制字符串,但是作为字节对象而不是字符串。我该如何转换这些?或者有更好的方法来解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

字节对象具有“十六进制”方法:

return b.hex()