一個最簡單的加密解密演算法 人人能懂 異或加密
阿新 • • 發佈:2018-12-19
#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是傳送人員和接收人員在一起的時候(比如春節回家,在自己家裡)確定的,犯罪分子是不會知道的.