1. 程式人生 > >一個最簡單的加密解密演算法 人人能懂 異或加密

一個最簡單的加密解密演算法 人人能懂 異或加密

               
#include <iostream>// KEY 非常重要,不能對公眾洩露KEY值// 傳送端和接收端提前祕密約定好KEY值#define KEY 1313113 // 萬歲萬歲萬萬歲using namespace std;// 加密演算法可以公開int encrypt(int plainText, int key)return plainText ^ key;}// 解密演算法也可以公開int decrypt(int cipherText, int key)return cipherText ^ key;}int main()int plainText = 20000// 傳送端要傳送的資料plainText
 cout << plainText << endl// 傳送端加密(知道KEY) int cipherText = encrypt(plainText, KEY);  cout << cipherText << endl;  /*    傳送端把cipherText傳輸到接收端   如果cipherText在途中被犯罪分子擷取      即使犯罪分子知道加解密演算法,也不能進行   因為犯罪分子不知道傳送端和接收端私下約定的KEY    */ // 接收端解密(知道KEY) int result =  decrypt(cipherText, KEY); // 接收端解密得到的資料result
 cout << result << endl;  return 0;}

       結果為:

20000132901720000      

      可見,解碼端成功得到了20000,即使犯罪分子在傳輸途中竊取了1329017也沒有用,即使犯罪分子知道加解密演算法也沒有用.

     值得注意的是:最關鍵的KEY不能洩露. KEY是傳送人員和接收人員在一起的時候(比如春節回家,在自己家裡)確定的,犯罪分子是不會知道的.