维吉尼亚加密算法(C语言)
#include<stdio.h>
#include<string.h>
void MtoC(char m[50],char k[10],char c[50])
{
int m1[50],k1[10],c1[50],i,j;
for(i=0;i<strlen(k);i++)
k1=k-a;
for(j=0;j<strlen(m);j++)
{
m1[j]=m[j]-a;
c1[j]=(m1[j]+k1[j%strlen(k)])%26;
c[j]=c1[j]+a;
printf("%c------%cn",m[j],c[j]);
}
}
void CtoM(char c[50],char k[10],char m[50])
{
int m1[50],k1[10],c1[50],i,j;
for(i=0;i<strlen(k);i++)
k1=k-a;
for(j=0;j<strlen(m);j++)
{
c1[j]=c[j]-a;
m1[j]=(c1[j]-k1[j%strlen(k)]+26)%26;
m[j]=m1[j]+a;
printf("%c------%cn",c[j],m[j]);
}
}
int main(void)
{
int i,j;
char m[50], k[10], c[50],t[50];
printf("输入明文:");
gets(t);
j=0;
for(i=0;t!=;i++){
if(t<=Z&&t>=A){
m[j]=t+32;
j++;
}
else if(t<=z&&t>=a){
m[j]=t;
j++;
}
}
m[j]=;printf("输入密钥:");
scanf("%s",k);
printf("明文转换为密文:n");
MtoC(m,k,c);
printf("密文转换为明文:n");
CtoM(c,k,m);
}
补充:综合编程 , 安全编程 ,