凯撒密码加解密程序(C语言) 2009年09月30日 星期三 13:21 1、程序结构化,用函数分别实现 2、对文件的加密,解密输出到文件
#include #include
void menu()/菜单,1.加密 2.解密 3.退出/ { clrscr(); printf(" ==============================================================================="); printf(" 1.Encrypt the file"); printf(" 2.Decrypt the file"); printf(" 3.Quit "); printf("=============================================================================== "); printf("Please select a item:"); return; }
char encrypt(char ch,int n)/加密函数,把字符向右循环移位n/ { while(ch>=‘A’&&ch=‘a’&&ch<=‘z’) { return (‘a’+(ch-‘a’+n)%26); } return ch; }
main() { int i,n; char ch0,ch1; FILE *in,*out; char infile[10],outfile[10];
textbackground(RED); textcolor(LIGHTGREEN); clrscr();
menu(); ch0=getch();
while(ch0!=‘3’) { if(ch0==‘1’) { clrscr(); printf(" Please input the infile:"); scanf("%s",infile);/输入需要加密的文件名/
if((in=fopen(infile,"r"))==NULL) {
printf("Can not open the infile!
讯享网
");
讯享网printf("Press any key to exit!
");
getch(); exit(0);
}
printf("Please input the key:"); scanf("%d",&n);/输入加密密码/
printf("Please input the outfile:"); scanf("%s",outfile);/输入加密后文件的文件名/
if((out=fopen(outfile,"w"))==NULL) {
讯享网printf("Can not open the outfile!
");
printf("Press any key to exit!
");
讯享网fclose(in); getch(); exit(0);
}
while(!feof(in))/加密/ {
fputc(encrypt(fgetc(in),n),out);
}
printf(" Encrypt is over! "); fclose(in); fclose(out); sleep(1); }
if(ch0==‘2’) { clrscr();
讯享网 printf("
Please input the infile:"); scanf("%s",infile);/输入需要解密的文件名/
if((in=fopen(infile,"r"))==NULL)
{
讯享网printf("Can not open the infile!
");
printf("Press any key to exit!
");
讯享网getch(); exit(0);
}
printf("Please input the key:"); scanf("%d",&n);/输入解密密码(可以为加密时候的密码)/
n=26-n;
printf("Please input the outfile:"); scanf("%s",outfile);/输入解密后文件的文件名/
if((out=fopen(outfile,"w"))==NULL) {
printf("Can not open the outfile!
");
讯享网printf("Press any key to exit!
");
fclose(in); getch(); exit(0);
}
while(!feof(in)) {
讯享网fputc(encrypt(fgetc(in),n),out);
} printf(" Decrypt is over! "); fclose(in); fclose(out); sleep(1); }
clrscr();
printf("
Good Bye! "); sleep(3);
讯享网getch();
} }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/176751.html