java 异或运算符‘^’对于两个数字AB异或运算有A^B=C, 那么ABC满足任意两个数异或结果等于第三个数,
即
A^B=C,
A^C=B,
B^C=A,
异或运算可以应用于高效简单加密解密中,
对于任意字符A,使用一个秘钥字符B,则加密后的字符为C=A^B,
解密则使用加密后的字符C异或秘钥字符B,有A=C^B,
利用这个特性还能完成两个数的交换,不利用第三个操作数
如完成AB两个数交换
A=A^B,
B=A^B,
A=A^B,
前面的ABA也可以是BAB,这个交换简单理解可以如下
A为明文,B为暗文,A^B为秘钥
第一步,现在把A^B赋值给A 则现在A为秘钥,B未改变,仍为暗文
第二步,把A^B赋值给B,注意这时候的A是秘钥,B赋值前运算时为暗文,运算后,A仍为秘钥,目前完成了B由暗文转为明文了
第三步,A=A^B,完成明文和秘钥的异或运算,得到暗文。
更多应用,欢迎补充。。。