大体框架很明确,按照需求选择算法来选择加密或者解密,通过主函数来调用各个算法,而对于算法可能还存在一些不足人意的地方,还待发掘和完善。Р三、实验源代码Р#include <stdio.h>Р#include <string.h>Р#include <time.h>Рkaiser(int mode)//凯撒算法加密Р{Р?char str1[100],str2[100],svKey[3];Р?int i,key;Р?printf("\n\n\n\n这里是凯撒算法\n\n\n");Р?//输入并检验key合法性Р?printf("请输入一个密钥key(1-25之间的整数)\n");Р?scanf("%d",&key);Р?while(key>25||key<1)Р?{Р printf("非法输入,请重新输入一个1-25之间的密钥(整数)\n");Р scanf("%d",&key);Р?}Р?fflush(stdin);Р?switch (mode)?Р?{Р Р case 1:Р {Р printf("请输入需要加密的数据(本版本暂时仅支持字母加密)\n");Р gets(str1);Р for(i=0;i<strlen(str1);i++)Р {Р if('A'<=str1[i]&&str1[i]<='Z') str2[i]=('A'+(str1[i]-'A'+key)%26);Р else str2[i]=('a'+(str1[i]-'a'+key)%26);Р }Р str2[i]='\0';Р i=0;Р if(key>10)Р {Р svKey[i++]=key/10+48;Р }Р svKey[i++]=key%10+48;Р svKey[i]='\0';Р show(str1,str2,svKey);Р fileWrite(1,str1,str2,svKey);