|
1楼 |
|
|
|
| 221.10.85.* |
3楼 |
|
|
| 221.10.168.* |
5楼 居然没人会做,这吧的水平,唉....我是第一次来这里 |
|
|
| 218.64.57.* |
7楼 #include<stdlib.h> #include<conio.h> #include<string.h> void dofile(char *in_fname,char *pwd,char *out_fname);/*对文件进行加密的具体函数*/ void main(int argc,char *argv[])/*定义main()函数的命令行参数*/ { char in_fname[30];/*用户输入的要加密的文件名*/ char out_fname[30]; char pwd[8];/*用来保存密码*/ if(argc!=4){/*容错处理*/ printf("\nIn-fname:\n"); gets(in_fname);/*得到要加密的文件名*/ printf("Password:\n"); gets(pwd);/*得到密码*/ printf("Out-file:\n"); gets(out_fname);/*得到加密后你要的文件名*/ dofile(in_fname,pwd,out_fname); } else{/*如果命令行参数正确,便直接运行程序*/ strcpy(in_fname,argv[1]); strcpy(pwd,argv[2]); strcpy(out_fname,argv[3]); dofile(in_fname,pwd,out_fname); } } /*加密子函数开始*/ void dofile(char *in_fname,char *pwd,char *out_file) { FILE *fp1,*fp2; register char ch; int j=0; int j0=0; fp1=fopen(in_fname,"rb"); if(fp1==NULL){ printf("cannot open in-file.\n"); exit(1);/*如果不能打开要加密的文件,便退出程序*/ } fp2=fopen(out_file,"wb"); if(fp2==NULL){ printf("cannot open or create out-file.\n"); exit(1);/*如果不能建立加密后的文件,便退出*/ } while(pwd[++j0]); ch=fgetc(fp1); /*加密算法开始*/ while(!feof(fp1)){ fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*异或后写入fp2文件*/ ch=fgetc(fp1); } fclose(fp1);/*关闭源文件*/ fclose(fp2);/*关闭目标文件*/ } /*程序结束*/ 发布人:刘丹 |
|
|
|
9楼 http://tech.163.com/04/1211/19/17BJUC1J0009rt.html |
|
|
|
| 218.199.136.* |
11楼 了 |
|
|
| 60.180.35.* |
13楼 |
|
|
| 218.61.14.* |
14楼 |
|
|
| 219.140.173.* |
15楼 |
|
|
| 221.0.180.* |
16楼 |
|
|
| 222.171.18.* |
19楼 |
|
|
| 219.135.181.* |
21楼 |
|
|
| 59.42.133.* |
22楼 |
|
|
| 125.91.117.* |
26楼 |
|
|
| 222.178.216.* |
27楼 |
|
|
| 58.82.176.* |
28楼 不知道他的程序是否正确,不过我的不一样 main(){ FILE *in,*out; char inputfile[20],outputfile[20],key[20]; printf("input file name:\n"); scanf("%s",inputfile); printf("output file name:\n"); scanf("%s",outputfile); printf("input Key:\n"); scanf("%s",key); in=fopen(inputfile,"r"); out=fopen(outputfile,"w"); int keycount=0; int i=0; while(key[i]!='\0'){ i++; keycount++; } i=0; char ch=fgetc(in); while(!feof(in)){ if(i>keycount) i=0; fputc((ch^key[i++]),out); ch=fgetc(in); } fclose(in); fclose(out); } 原文件名目标文件名密码均在20位以内,没写判度意外情况的语句,需要者自加 不足处,输入密码时是明文显示的 还有,楼上的while(pwd[++j0]);没问题,是用来判断密码长度的,因为密码未必一定 等于8位! 其实上面的程序,写的真的不错…… |
|
|
| 222.75.165.* |
31楼 我也是一个新手 拜托了 大哥 |
|
|
| 221.6.151.* |
33楼 |
|
|
|
34楼 |
|
|
|
