资源简介

已经编译过,北科的孩子会用到,别的学校也可能用到

资源截图

代码片段和文件信息

#include
#include
#include

/*维吉尼亚*/
#define N 100
char input[N];          //保存成整数,输出时强制转换成字符
char output[N]a[N];    //输入时输入字符,参与运算时强制转换成整数
int  k[N];              //密钥
unsigned int i;

void getPlainText()     //获得明文字符串
{printf(“\n请输入明文:“);
 scanf(“%s“input);
 printf(“\n“);
}

void getCipherText()     //获得密文字符串
{printf(“\n请输入密文:“);
 scanf(“%s“input);
 printf(“\n“);
}

void getLength()        //获取密钥
{printf(“请输入密钥:“);
 scanf(“%s“a);
 for(i=0;i {if(a[i]>=‘A‘&&a[i]<=‘Z‘)
  k[i]=a[i]-‘A‘;
  else if(a[i]>=‘a‘&&a[i]<=‘z‘)
  k[i]=a[i]-‘a‘;
 }


void Weiji_cipher()                     //维吉尼亚加密
{unsigned int j;
 j=0;
 for(i=0;i {if((int)input[i]+k[j]>(int)‘z‘)
  {input[i]-=26;                        //保证循环
   output[i]=input[i]+k[j];
  } 
  else
  {output[i]=input[i]+k[j];             //字母在字母表中右移K位
   if(input[i]<=‘Z‘&&output[i]>‘Z‘)
   {output[i]-=26;                      //保证循环
   }
  }
  if(j  j=j+1;
  else j=0;
 }
}

void Weiji_plain()                      //维吉尼亚解密
{unsigned int j;
 j=0;
 for(i=0;i {output[i]=(int

评论

共有 条评论