打印
[ZLG-ARM]

维吉尼亚密码的C语言源代码(转)

[复制链接]
2580|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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

粉丝