異或加密與解密(C語言)註釋

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。

順帶說一下,只異或一次是很弱的加密方法,很容易被破解的。

發佈了15 篇原創文章 · 獲贊 14 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章