?? 仿射caesar密碼加解密算法.cpp
字號:
#include <iostream>
using namespace std;
int Ni(int a) /*求a相對于b的逆*/
{
int i,b;
for(i = 1; i<a;i++)
{
b = ( 26*i + 1 )/a;
if(( 26*i + 1 )%a==0)
return b;
}
}
void main()
{
int c;
m2: cout<<"請選擇,1加密,2解密"<<endl;
cin>>c;
if(c!=1&&c!=2) goto m2;
int a,b;
char p[100];
m1: cout<<"Input miyao a:"<<endl;
cin>>a;
if(a!=3&&a!=5&&a!=7&&a!=9&&a!=11&&a!=15&&a!=17&&a!=19&&a!=21&&a!=23&&a!=25) goto m1;
cout<<"Input miyao b:"<<endl;
cin>>b;
if(c==1)
{
cout<<"Input mingwen or miwen:"<<endl;
cin>>p;
for(int i=0;i<100;i++)
{
p[i]=(a*(p[i]-97)+b)%26+97;
}
cout<<"Output miwen:"<<endl;
for(int j=0;j<100;j++)
{
cout<<p[j];
}
}
if(c==2)
{
cout<<"Input miwen:"<<endl;
cin>>p;
for(int i=0;i<100;i++)
{
int tmp;
tmp = Ni(a)*(p[i]-97-b);
if(tmp<0)
p[i]=tmp%26+97+26;
else
p[i]=tmp%26+97;
}
cout<<"Output miwen:"<<endl;
for(int j=0;j<100;j++)
{
cout<<p[j];
}
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -