凯撒加解密算法实现.docVIP

  • 3
  • 0
  • 约 7页
  • 2018-05-08 发布于重庆
  • 举报
凯撒加解密算法实现

班级:09计算机(1) 姓名:李 洁 学号:2009034128 一、方案 2 二、编程实现 2 三、结果 6 一、方案 1、编写“选择菜单”: 以便用户通过菜单选择相应的功能。 2、加密: 选择需要加密的文件并设置加密密码,然后再对加密后的文件重命名。加密成功则提示“加密结束”并跳转至“选择菜单”,操作者可根据需要选择相应操作。若加密失败则给出相应提示并提醒用户退出。 3、解密: 用加加密的密码进行解密。解密成功则提示“解密结束”并跳转至“选择菜单”,操作者可根据需要选择相应操作。若解密失败则给出相应提示并提醒用户退出。 4、暴力破解: 若正常的解密失败,操作者可以使用暴力破解。暴力破解类似于“修改密码”,暴力破解后用户得到新的密码,使用该新密码即可重新解密文件。 二、编程实现 #includestdio.h #includeconio.h char encrypt(char ch,int n) { while(ch=Ach=Z) { return (A+(ch-A+n)%26); } while(ch=ach=z) { return (a+(ch-a+n)%26); } return ch; } void menu() { printf(\n===============================================================================); printf(\n1.加密文件); printf(\n2.解密文件); printf(\n3.暴力破解文件); printf(\n4.退出\n); printf(===============================================================================\n); printf(请选择一个项目:); return; } main() { int i,n; char ch0,ch1; FILE *in,*out; char infile[20],outfile[20]; menu(); ch0=getch(); while(ch0!=4) { if(ch0==1) { printf(\n请输入需要加密的文件名:); scanf(%s,infile); if((in=fopen(infile,r))==NULL) { printf(无法打开文件!\n); printf(请按任意键退出!\n); getch(); } printf(请输入加密密码:); scanf(%d,n); printf(请输入加密后文件的文件名:); scanf(%s,outfile); if((out=fopen(outfile,w))==NULL) { printf(无法打开外部文件!\n); printf(请按任意键退出!\n); fclose(in); getch(); } while(!feof(in)) { fputc(encrypt(fgetc(in),n),out); } printf(\n加密结束!\n); fclose(in); fclose(out); } if(ch0==2) { printf(\n请输入需要解密的文件名:); scanf(%s,infile); if((in=fopen(infile,r))==NULL) { printf(无法打开文件!\n); printf(请按任意退出!\n); getch(); } printf(请输入解密密码(加密时候的密码):); scanf(%d,n); n=26-n; printf(请输入解密后文件的文件名:); scanf(%s,outfile); if((out=fopen(outfile,w))==NULL) { printf(无法打开文件!\n); printf(请按任意键退出!\n); fclose(in); getch(); } while(!feof(in)) { fputc(encrypt(fgetc(in),n),out); } printf(\n解密结束!\n); fclose(in); fclose(out); } if(ch0==3) { printf(\n请输入需要解密的文件名:); scanf(%s,infile); if((in=fopen(in

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档