置换密码
- 格式:doc
- 大小:36.50 KB
- 文档页数:5
#include
#include
using namespace std;
void jiami()
{
char str[100];
char str1[100];
char a[100];
cout<<"请输入密钥:"<
cin.get(str,100);
cout<<"请输入您的明文:"<
cin.get(a,100);
int len=strlen(str);
char b[100][100];
char c[100][100];
char d[100][100];
int j=0;
int t=0;
int j1;
int t1;
for(int i=0;a[i]!='\0';i++)
{
if(a[i]!=' '){
b[j][t]=a[i];
c[j][t]=a[i];
t++;
if(t>=len)
{
t=0;
j++;
}
j1=j;
t1=t;
}
else{};
}
strcpy(str1,str);
for(int m=0;m
for(int j=0;j
if(str1[j]>str1[j+1])
{
char ch=str1[j];
str1[j]=str1[j+1];
str1[j+1]=ch;
}
}
}
for(int n=0;n
for(int j=0;j
if(str[n]==str1[j])
{
for(int x=0;x
c[x][n]=b[x][j];
}
}
}
}
for(int p=0;p
strcpy(d[p],c[p]);
}
for(int w=0;w
for(int j=0;j
if(str[w]==str1[j])
{
for(int x=0;x
d[x][w]=c[x][j];
}
}
}
}
cout<<"经置换算法后的密文为:"<
for(int j=0;j
}
void jiemi()
{
char str[100];
char str1[100];
char a[100];
cout<<"请输入您的密钥:"<
cin.get(str,100);
cout<<"请输入您的密文:"<
cin.get(a,100);
int len=strlen(str);
int len1=strlen(a);
int le=len1/len;
char b[100][100];
char c[100][100];
char d[100][100];
int j=0;
int t=0;
for(int i=0;a[i]!='\0';i++)
{
if(a[i]!=' '){
b[j][t]=a[i];
c[j][t]=a[i];
j++;
if(j>=le)
{
j=0;
t++;
}
}
else{};
}
strcpy(str1,str);
for(int y=0;y
for(int j=0;j
if(str1[j]>str1[j+1])
{
char ch=str1[j];
str1[j]=str1[j+1];
str1[j+1]=ch;
}
}
}
for(int z=0;z
for(int j=0;j
if(str[z]==str1[j])
{
for(int x=0;x
c[x][z]=b[x][j];
}
}
}
}
for(int i1=0;i1
strcpy(d[i1],c[i1]);
}
for(int i2=0;i2
for(int j=0;j
if(str[i2]==str1[j])
{
for(int x=0;x
d[x][i2]=c[x][j];
}
}
}
}
cout<<"解密后的明文为:"<
for(int j=0;j
}
int main()
{
int choice;
cout<<"请输入您的选择:"<
switch (choice)
{
case 1:
jiami();
break;
case 2:
jiemi();
break;
default:
break;
}
return 0;
}