python中的二进制转换和XOR
我正在做一项任务,破译一个一次性密码(7句话,所有7句话中每个字符位置的重复键)。我通过猜测工作来解决这个问题,我需要将猜测字母的二进制值与密码字符的二进制值异或,以获得一个密钥 但是,我不能对Python返回的二进制值进行异或运算,因为它们是字符串格式的。我无法将它们转换为整数,因为我需要“0b”部分,但我也无法对其进行异或运算,因为它是一个字符串python中的二进制转换和XOR,python,Python,我正在做一项任务,破译一个一次性密码(7句话,所有7句话中每个字符位置的重复键)。我通过猜测工作来解决这个问题,我需要将猜测字母的二进制值与密码字符的二进制值异或,以获得一个密钥 但是,我不能对Python返回的二进制值进行异或运算,因为它们是字符串格式的。我无法将它们转换为整数,因为我需要“0b”部分,但我也无法对其进行异或运算,因为它是一个字符串 关于如何解决这个问题有什么建议吗?Python中的整数支持二进制位运算;该函数获取整数操作数并生成位发生变化的新整数,就像在C代码中一样 将字符串
关于如何解决这个问题有什么建议吗?Python中的整数支持二进制位运算;该函数获取整数操作数并生成位发生变化的新整数,就像在C代码中一样 将字符串(假设您有类似于
0b1001101
)转换为整数,在该字符串上使用^
异或运算符。如果需要在末尾输出字符串,则始终可以在整数上再次使用bin()
:
>>> bin(102)
'0b1100110'
>>> 102 ^ 255
153
>>> bin(102 ^ 255)
'0b10011001'
如果您有ASCII字节(Python 2字符串中的字符是字节),请使用
ord()
获取整数表示,使用chr()
再次返回字节(字符)。Python中的整数支持二进制位运算;该函数获取整数操作数并生成位发生变化的新整数,就像在C代码中一样
将字符串(假设您有类似于0b1001101
)转换为整数,在该字符串上使用^
异或运算符。如果需要在末尾输出字符串,则始终可以在整数上再次使用bin()
:
>>> bin(102)
'0b1100110'
>>> 102 ^ 255
153
>>> bin(102 ^ 255)
'0b10011001'
如果您有ASCII字节(Python 2字符串中的字符是字节),请使用
ord()
获得整数表示,使用chr()
再次返回到字节(字符)。!非常感谢你!令人惊叹的!非常感谢你!