logo资料库

C语言实现Vigenere加解密.doc

第1页 / 共3页
第2页 / 共3页
第3页 / 共3页
资料共3页,全文预览结束
#include #include #include void Encry() { char key[100]; char ch,temp; int L,i=0,j=0; if(getchar()=='\n') temp=' '; printf("请输入密钥: "); gets(key); L=strlen(key); printf("输入明文: "); while((ch=getchar())!='\n') { if(ch==' ') { i++; continue; } if(ch>='a'&&ch<='z') { printf("%c",(ch+key[j%L]-'a'-'a')%26+'A'); j++; } if(ch>='A'&&ch<='Z') { printf("%c",(ch+key[j%L]-'A'-'a')%26+'A'); j++; } if(j%L==0) printf(" "); i++; } putchar(ch); } void Decry() { char key[100];
char ch,temp; int L,i=0,j=0; if(getchar()=='\n') temp=' '; printf("请输入密钥: "); gets(key); L=strlen(key); printf("输入密文: "); while((ch=getchar())!='\n') { if(ch==' ') { i++; continue; } if(ch>='A'&&ch<='Z') { printf("%c",(ch-key[j%L]-'A'+'a'+26)%26+'a'); j++; } if(j%L==0) printf(" "); i++; } putchar(ch); } int Exit() { exit(0); } int main() { char ch; for(;;) { printf("请输入你的操作(e/E 加密;d/D 解密;q/Q 退出):"); ch=getchar(); if(ch=='e'||ch=='E') Encry(); else if(ch=='d'||ch=='D')
Decry(); else if(ch=='q'||ch=='Q') Exit(); else { printf("输入命令错误!"); putchar(getchar()); continue; } } return 0; }
分享到:
收藏