當乙個數a和另乙個數b進行異或運算會生成另乙個數c,如果再將c和b進行異或運算則c又會還原為a。
相對於其他的簡易加密演算法,xor演算法的優點如下。
(1)演算法簡單,對於高階語言很容易能實現。
(2)速度快,可以在任何時候、任何地方使用。
(3)對任何字元都是有效的,不像有些簡易加密演算法,只對西文字元有效,對中文加密後再解密無法還原為原來的字元。
上一部分介紹了如何使用xor運算進行加密/解密的原理,本節將使用其加密使用者的登入資訊。根據上一小節介紹的xor加密演算法的原理,不難寫出以下的加密解密函式。首先列出加密演算法。
第4行定義了加密函式myencrypt(),輸入引數$string為明文,而$key為金鑰;輸出為使用$key作為金鑰並使用xor加密演算法產生的密文。
第6~12行的外層for迴圈對明文本串的每乙個字元進行迴圈,而內層的for迴圈(第8~11行)對明文的每一字元迴圈與金鑰的每一位做異或運算。其原理已經在上一小節中介紹,不再重述。
同樣,與加密函式類似,可以寫出下面的解密函式。
第4行定義了解密函式mydecrypt(),輸入引數$string為密文,而$key為金鑰;輸出為使用$key作為金鑰並使用xor解密演算法產生的明文。
下面,通過乙個應用示例來進一步說明加密函式的功能。
第3行首先定義了乙個明文$my_password,然後在第4行定義金鑰$my_key。
第5、6行分別呼叫加密函式生成密文並輸出;反過來,又在第7、8行將密文解密。
上面示例的執行結果如下。
my_password=chair
my_password_en=rypxc
my_password_de=chair
在使用者註冊時,使用者需要添寫使用者密碼表單。
除使用者本人之外,其他任何人都無法獲取其密碼資訊,包括系統設計者和資料庫管理員。
系統能根據使用者輸入的密碼驗證使用者的合法性。
waeshall演算法原理和實現
在集合x上的二元關係r的傳遞閉包是包含r的x上的最小的傳遞關係。r的傳遞閉包在數字影象處理的影象和視覺基礎 圖的連通性描述等方面都是基本概念。一般用b表示定義在具有n個元素的集合x上關係r的n n二值矩陣,則傳遞閉包的矩陣b 可如下計算 b b b2 b3 b n 式中矩陣運算時所有乘法都用邏輯與代...
回溯演算法的原理和實現步驟
回溯法是一種選優搜尋法,按選優條件向前搜尋,以達到目標。但當探索到某一步時,發現原先選擇並不優或達不到目標,就退回一步重新選擇,這種走不通就退回再走的技術為回溯法。也就是說解決乙個回溯問題,實際上就是乙個決策樹的遍歷過程。在這個過程中只需要思考三個問題 1 路徑 也就是已經做出的選擇 2 選擇列表 ...
全排列演算法原理和實現
全排列演算法原理和實現 全排列是將一組數按一定順序進行排列,如果這組數有n個,那麼全排列數為n 個。現以為 例說明如何編寫全排列的遞迴演算法。1 首先看最後兩個數4,5。它們的全排列為4 5和5 4,即以4開頭的5的全排列和以5開頭的4的全排列。由於乙個數的全排列就是其本身,從而得到以上結果。2 再...