注册 登录
编程论坛 C++教室

请前辈,帮小白看下关于异或基本加密,该怎么弄,谢谢了!!

瑞锋online 发布于 2017-09-10 17:24, 1886 次点击
编写一个简单的基于异或运算的加密解密程序。
a)    针对一串字符进行加(解)密,密码为1个字符串(可以是1个字符或更多字符);
b)    能够输出(用cout)加密前的内容(明文),加密后的内容(密文),以及解密后的内容;
c)    明文和密码均由键盘输入(用cin)。


[此贴子已经被作者于2017-9-10 20:22编辑过]

1 回复
#2
yangfrancis2017-09-15 16:25
#include<iostream>
using std::cin;
using std::cout;
using std::endl;
void Encryption(char*origin,char*key,char*result)
{
    for(int i=0;i<strlen(origin);i++)
    {
        result[i]=origin[i]^key[i];    //加密解密过程一样,明文每个字符和密钥每个字符异或运算得到密文,
    }                                  //密钥每个字符和密文每个字符异或运算得到本来的明文
    result[i]='\0';
    return;
}
int main()
{
    char originstr[100],keystr[100],encrypted[100],decrypted[100];
    /*    原始明文,       密钥,      密文,         解密*/
    cout<<"输入明文:";cin>>originstr;
    cout<<"输入密钥:";cin>>keystr;
    Encryption(originstr,keystr,encrypted);
    cout<<endl<<"你本来的明文:"<<originstr<<endl
      <<"你的密钥:"<<keystr<<endl<<"得到密文:"<<encrypted<<endl;
    Encryption(keystr,encrypted,decrypted);
    cout<<"解密得到明文:"<<decrypted<<endl;
    return 0;
}
1