[ZLG-ARM] 维吉尼亚密码的C语言源代码(转)

[复制链接]
 楼主| msp430ing 发表于 2012-2-27 17:43 | 显示全部楼层 |阅读模式
#i nclude <ctype.h>
#i nclude <conio.h>
void crypt(char m[],char k[],char r[])
{
   int i,j,s=0;
   j=strlen(k);
   for(i=0;m;i++)
      m=tolower(m);
   for(i=0;m;i++)
      if(isalpha(m))
      {
           r=(m-'a'+k[s%j]-'a')%26+'a';
           s++;/*s用来跳过明文中的空格字符*/
      }
      else
           r=m;
   r=0;/*密文字符串结束符*/
   for(i=0;r;i++)
      r=toupper(r);
}

void decrypt(char c[],char k[],char m[])
{
   int i,j,s=0;
   j=strlen(k);
   for(i=0;c;i++)
      c=tolower(c);
   for(i=0;c;i++)
      if(isalpha(c))
      {
          m=(c-k[s%j]+26)%26+'a';
          s++;
      }
      else
          m=c;
   m=0;
}

void main()
{
    char m[]="welcome to my blog.i am bugeyes.";
    char k[]="bugeyeswuyan";
    char c[80];
    char d[80];
    clrscr();
    crypt(m,k,c);
    decrypt(c,k,d);
    puts(m);
    puts(k);
    puts(c);
    puts(d);
}
thlight 发表于 2012-2-28 17:32 | 显示全部楼层
谢了 好好研究一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

730

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部