当前位置:编程学习 > 网站相关 >>

维吉尼亚加密算法(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);
}


\

补充:综合编程 , 安全编程 ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,