異或(XOR)運算加密/解密在線工具

異或(XOR)運算加密/解密在線工具,工具鏈接:http://www.atoolbox.net/Tool.php?Id=857

異或(XOR)運算加密一種簡單高效、非常安全的加密方法。

 

異或(XOR)運算:

邏輯運算之中,除了 AND 和 OR,還有一種 XOR 運算,中文稱爲"異或運算"。

它的定義是:兩個值相同時,返回false,否則返回true。也就是說,XOR可以用來判斷兩個值是否不同。

true XOR true // false
false XOR false // false
true XOR false // true
true XOR false // true

XOR運算有一個很奇妙的特點:如果對一個值連續做兩次 XOR,會返回這個值本身。

// 第一次 XOR
1010 ^ 1111 // 0101
 
// 第二次 XOR
0101 ^ 1111 // 1010

上面代碼中,原始值是1010,再任意選擇一個值(上例是1111),做兩次 XOR,最後總是會得到原始值1010。這在數學上是很容易證明的。

XOR 的這個特點,使得它可以用於信息的加密。

message XOR key // cipherText
cipherText XOR key // message

上面代碼中,原始信息是message,密鑰是key,第一次 XOR 會得到加密文本cipherText。對方拿到以後,再用key做一次 XOR 運算,就會還原得到message。

 

二戰期間,各國爲了電報加密,對密碼學進行了大量的研究和實踐,其中就包括 XOR 加密。

戰後,美國數學家香農(Claude Shannon)將他的研究成果公開發表,證明了只要滿足兩個條件,XOR 加密是無法破解的。

  • key的長度大於等於message

  • key必須是一次性的,且每次都要隨機產生

理由很簡單,如果每次的key都是隨機的,那麼產生的CipherText具有所有可能的值,而且是均勻分佈,無法從CipherText看出message的任何特徵。也就是說,它具有最大的"信息熵",因此完全不可能破解。這被稱爲 XOR 的"完美保密性"(perfect secrecy)。

滿足上面兩個條件的key,叫做 one-time pad(縮寫爲OTP),意思是"一次性密碼本",因爲以前這樣的key都是印刷成密碼本,每次使用的時候,必須從其中挑選。

 

異或(XOR)運算加密/解密算法原理:

  從加密的主要方法看,換位法過於簡單,特別是對於數據量少的情況很容易由密文猜出明文,而替換法不失爲一種行之有效的簡易算法。

  從各種替換法運算的特點看,異或運算最適合用於簡易加解密運算,這種方法的原理是:當一個數A和另一個數B進行異或運算會生成另一個數C,如果再將C和B進行異或運算則C又會還原爲A。

  相對於其他的簡易加密算法,XOR算法的優點如下。

  (1)算法簡單,對於高級語言很容易能實現。

  (2)速度快,可以在任何時候、任何地方使用。

  (3)對任何字符都是有效的,不像有些簡易加密算法,只對西文字符有效,對中文加密後再解密無法還原爲原來的字符。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章