加密消息为AATACKATDOWN
密匙关键词为LEMON
代码如下:
#include <iostream>
#include <string>
using namespace std;
//加密,输入原文、密钥,输出密文
void jiami(char src[],char my[],char mw[])
{
int i=0,k=0;
int len= strlen(my);
while(src[i] != '\0')
{
if(src[i]>='a' && src[i]<='z')
{
mw[i] = src[i] + my[k]-97;
if(mw[i] > 122)
mw[i]-=26;
}else if(src[i]>='A' && src[i]<='Z')
{
mw[i] = src[i] + my[k]-65;
if(mw[i] > 90)
mw[i]-=26;
}
k = (k+1)%len;
i++;
}
mw[i] = 0;
}
void jiemi(char mw[],char my[],char src[])
{
int i=0,k=0;
int len = strlen(my);
while(mw[i] != '\0')
{
if(mw[i]>='a' && mw[i]<='z')
{
src[i] = mw[i] + 97 -my[k];
if(src[i] < 97)
src[i]+=26;
}else if(mw[i]>='A' && mw[i]<='Z')
{
src[i] = mw[i]-my[k]+65;
if(src[i] < 65)
src[i]+=26;
}
k = (k+1)%len;
i++;
}
src[i]=0;
}
int main()
{
char src[]="AATACKATDOWN";
char my[]="LEMON";
char mw[100]={0};
char hy[100]={0};
jiami(src,my,mw);
cout << "加密后:"<<mw <<endl;
jiemi(mw,my,hy);
cout << "解密后:"<<hy<<endl;
return 0;
}