您的位置:首页 > 其它

一个最简单的加密解密算法(人人能懂)

2017-03-28 11:33 363 查看
原文:http://blog.csdn.net/stpeace/article/details/8294980 点击打开链接

[cpp] view
plain copy

#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;  

}  

结果为:

20000

1329017

20000

      

可见,解码端成功得到了20000,即使犯罪分子在传输途中窃取了1329017也没有用,即使犯罪分子知道加解密算法也没有用.

值得注意的是:最关键的KEY不能泄露. KEY是发送人员和接收人员在一起的时候(比如春节回家,在自己家里)确定的,犯罪分子是不会知道的.

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: