?? vigenere加解密算法.cpp
字號:
#include <iostream>
#include <cstring>
using namespace std;
void main()
{
char k[100];
char c[100];
char d[100];
int i,j,l;
m1: cout<<"加密請輸入1,解密請輸入2:";
int e;
cin>>e;
if(e!=1&&e!=2) goto m1;
cout<<"請輸入密鑰:"<<endl;
cin>>k;
j=0;
for(i=0;i<100;i++)
{
if(k[i]<=0) break;
else j++;
}
for(l=1;l<=100;l++)
{
for(i=0;i<j;i++)
{
if((l*j+i)>=100) break;
k[l*j+i]=k[i];
}
if((l*j+j)>=100) break;
}
if(e==1)
{
cout<<"請輸入明文:"<<endl;
cin>>c;
j=0;
for(i=0;i<100;i++)
{
if(c[i]<=0) break;
else j++;
}
for(i=0;i<j;i++)
{
d[i]=(((c[i]-96)+(k[i]-96))%26-1)+96;
if(d[i]==96) d[i]=d[i]+26;
}
cout<<"密文如下:"<<endl;
for(i=0;i<j;i++)
cout<<d[i];
}
if(e==2)
{
cout<<"請輸入密文:"<<endl;
cin>>d;
j=0;
for(i=0;i<100;i++)
{
if(d[i]<=0) break;
else j++;
}
for(i=0;i<j;i++)
{
c[i]=(26+((d[i]-96)-(k[i]-96))%26+1)+96;
if(c[i]==123) c[i]=c[i]-26;
}
cout<<"明文如下:"<<endl;
for(i=0;i<j;i++)
cout<<c[i];
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -