仿射函数加密解密算法

/*加密函数y=11x+6mod26 解密函数x=19y+16mod26*/
#include
#include
#include
int transform(char s[],int n[]);
int endecryp(int input[],int a,int b,int output[]);
int m;
int main()
{char s[100];int n[100],d[100];
transform(s,n);
/*加密*/
int x,y,z,l;
printf("输入加密参数;x=");
scanf("%d",&x);
printf("输入加密参数;y=");
scanf("%d",&y);
endecryp(n,x,y,d);
printf("输入解密参数;z=");
scanf("%d",&z);
printf("输入解密参数;l=");
scanf("%d",&l);
/*解密*/
endecryp(d,z,l,n);

}
int transform(char s[],int n[])
{int i;
printf("输入连续的小写或大写字母:");
gets(s);
m=strlen(s);
for(i=0;i{
if (s[i]>='a'&&s[i]<='z')
{n[i]=s[i]-'a';}
else if (s[i]>='A'&&s[i]<'Z')
{n[i]=s[i]-'A';}
else
{printf("输入有误");
exit(1);}
printf("%4d",n[i]);
}
printf("\n");
}
int endecryp(int input[],int a,int b,int output[])
{int i;
for(i=0;i{ output[i]=(a*input[i]+b)%26;
printf("%4d",output[i]);}
printf("\n");
}

相关文档
最新文档