数据文件加密算法--替代加密法
数据文件加密算法--替代加密法
#include<stdio.h>
#include<ctype.h>
char mm[54]="QAZWSXEDCRFVTGBYHNUJMIKOLPqwertyuiop asdfghjklzxcvbnm";
char zmb[54]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO PQRSTUVWXYZ ";
/* mm 为加密字符串即密钥, zmb 为原字母对照表 */
main(int argc,char *argv[])
{ FILE *fp1,*fp2;
int ch,flag=0;
if((toupper(*argv[3])=='E')||(toupper(*argv[3])=='D'))
flag=1;
if((argc!=4)||(flag!=1))
{ printf("\007 Error: 参数错误!!\n");
printf(" 格式:JM1 input output E/D \n");
exit(0); }
if((fp1=fopen(argv[1],"r"))==0){
printf("\007 Error: 不能打开输入文件!\n");
exit(0); }
if((fp2=fopen(argv[2],"w"))==0){
printf("\007 Error: 不能创建输出文件!\n");
exit(0); }
do {
ch=getc(fp1);
if(ch==EOF)
break;
if(isalpha(ch)||ch==' ')
if(toupper(*argv[3])=='E') /* E: 加密 D:解密 */
ch=mm[find(zmb,ch)];
else
ch=zmb[find(mm,ch)];
putc(ch,fp2);
} while(1);
fclose(fp1);
fclose(fp2);
}
find(char *s,int ch)
{ register int t;
for(t=0;t< 54;t++)
if(ch==s[t])
return t; }