void main(void) { int src=54; int pwd=32; int dst=0; dst=src^pwd; printf(" Encryption: %d\n",dst); src=dst^pwd; printf(" Decryption: %d\n",src); } 异或一次就加密了,再异或一次又还原了.
巧妙应用
C语言中若需要交换两个变量的值,除了通常使用的借用中间变量进行交换外,还可以利用异或,仅使用两个变量进行交换,如:a=a^b;//赋值b=b^a;//赋值 b=b^a=b^(a^b)=b^a^b=a (等号等于的意思)a=a^b;//赋值 a=a^b=a^(b^a)=a^b^a=b (等号等于的意思)这样就完成了a与b的交换。综上:同一变量与另一变量和其异或值异或等于自身。用例:可使用于加密算法某一环节或更多环节,使算法更复杂,不易被破解,安全性更高。异或运算有一个特性 若 c = a xor b 那么 a = c xor b 根据这样的特性,你有一个信息a,然后你产生一个密码b,把它和a异或运算之后就变成了c。这就是一种加密,解密的时候,把c重新和b异或运算,就变回了a。 顺带说一下,只异或一次是很弱的加密方法,很容易被破解的。