我目前正在尝试编写解密例程,加密例程中的一个步骤是:
xor eax,edx // xors eax(current character) and edx (the key)
显然我会知道关键所以任何想法如何扭转这种操作?
答案 0 :(得分:4)
XOR是它自己的逆。 (按位:XOR� 0不会改变一点.XOR&1和1会翻转它,再做它会把它翻转。)
对#34;加密"价值和关键:
encrypted = plain XOR key
encrypted XOR key = (plain XOR key) XOR key
encrypted XOR key = plain XOR (key XOR key)
encrypted XOR key = plain XOR (000...0)
encrypted XOR key = plain
答案 1 :(得分:0)
可能有助于可视化XOR的行为。如果仅在一个操作数中设置,则XOR操作仅设置一个位。如果在两者中都设置了,则结果为0.这是“eXclusive”,否则它的行为就像OR:
source : 0011
key : 0101
xor-ed : 0110
所以,如果您只是使用edx中的相同键再次XOR eax(现在包含加密值),您将获得原始来源:
crypted: 0110
key : 0101
xor-ed : 0011