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。
順帶說一下,只異或一次是很弱的加密方法,很容易被破解的。