異或加密演算法

2021-07-24 16:44:48 字數 770 閱讀 8632

異或加密是通過使用布林代數中的異或函式(xor)實現的,xor是乙個二元運算子(即有兩個引數,類似加號),按其名稱「異或」容易推斷兩個引數中有且僅有乙個為真(即兩引數相異)時,結果返回真,真值表如下:ab

a xor btt

ftft

fttf

ff異或加密背後的原理是如果不知道兩個引數的初值,就不可能進行逆向操作,例如,如果進行異或運算的兩個變數值未知,就無法從結果推斷兩變數的值;如果a異或b返回真,你也無從知曉是a真b假還是a假b真;進一步說,就算結果返回假,也仍然無法確定兩個都真還是都假。

但是,如果你之道了a或者b的初值,異或操作就是完全可逆的(不同於邏輯與、邏輯或)。例如,a xor true為真,則a假;a xor true為假,則a為真。異或加密的原則就是如果同時擁有加密的字串和加密金鑰,就可以正確解密;如果沒有金鑰的話,唯一的破解方法就是製作完全隨機的金鑰並挨個嘗試,直到解密程式的輸出是可讀文字或其他類似的內容。加密金鑰越長,就越難破解。

在實際的加密工程中,異或加密的用法是先得到加密金鑰,然後對連續檔案片段重複應用金鑰並儲存結果。輸出將相當於乙個完全隨機的程式,因為加密金鑰是隨機生成的。一旦有另乙個人有訪問金鑰的許可權,那這個人就能夠破解檔案。但是如果得不到金鑰,那麼解密檔案幾乎是不可能,金鑰的長度每增加一位,通過暴力方法破解檔案所需要的嘗試次數都會翻倍。

#include

intmain

() return

0;}

程式將使用^位操作符對字串中的每個字元與金鑰中的字元進行異或運算,從而實現加密。

異或加密演算法

異或加密是一種很簡單的加密演算法,無論是原理還是操作性上,都不具備任何難度,所以,在做一些簡單的加密時,被廣為採用。但因為很簡答,破解起來也很容易,所以對於更加私密的資訊,不要用這種方法加密。下面我們簡單地介紹一下異或的運算 數 算符為xor exclusive or 在計算機中通常用 的符號表示 ...

異或加密演算法

注意,這篇文章自己用來備忘 加密 function prefixinteger num function autoset word return ret function submit var numbers new array text.length encnum new array text.l...

Android資料加密之異或加密演算法

異或運算中,如果某個字元 或數值 x 與 乙個數值m 進行異或運算得到y,則再用y 與 m 進行異或運算就可以還原為 x 因此應用這個原理可以實現資料的加密解密功能。1.固定key的方式 這種方式加密解密 演算法一樣 public byte encrypt byte bytes int len by...