先介紹關於 Xor 的基本概念, Xor ( 互斥或 )是一種邏輯運算,常用於加解密或混淆,以下是幾個例子
4 xor 4 = 0
4 xor 1 = 1
1 xor 4 = 1
1 xor 1 = 0
相同輸出 " 0 " ,不同則輸出 " 1 "
同理 " 20 " 的二進制是 " 10100 "
" 25 " 的二進制是 " 11001 "
所以以二進制的角度來看 Xor 要輸出 " 01101 "
Xor 通常應用在電腦邏輯開關中,雖然有 AND , OR , NOT 就足以套用所有邏輯,但有 XOR 後,才更能節省電腦開關元件的數量
但 XOR 真正厲害的地方是在密碼學中的應用,
例如 A 是 明文 ( 原始未加密的訊息 )
B 是 金鑰 ( 用來加解密碼的一串訊息 )
C 是 密文 ( 由明文透過金鑰加密過後,所得到的一串密碼 )
A xor B = C ( 明文 對金鑰進行 XOR 加密後,會得到密文 )
C xor B = A ( 而密文 對金鑰再進行一次 XOR 解密後,會得到原本的明文 )