我在某处听说使用 XOR 是不可逆的(他们谈到加密),但我不明白它的意思是什么? AFAIK 即使使用 OR 运算,你也无法找出这两个位中哪一个是 1。请问,任何知道其含义的人都可以向我解释一下吗? 谢谢你
如果你这样做
z = x 异或 y
然后
x = z 异或 y
所以是的,它是可逆的。
可逆,与 AND 或 OR 不同。对于加密来说,这主要对于 Vernam 密码而言很有趣——您的密码生成密钥流,然后与数据流进行异或。在接收端,您可以将加密流与相同的密钥流进行异或,并得到明文。 从密码分析的角度来看,这也很有趣。例如,如果使用相同的密钥流对两个流进行加密,则将它们相互异或即可得到两个明文流的异或,并删除密钥流的所有影响。此时,您可以使用“滑动窗口”技术:将您认为可能在一条消息中的不同点与该流中的内容进行异或,如果存在,结果将是另一条消息的可理解文本。