- 论坛徽章:
- 0
|
写DES加密器的问题,想把密文写入文件,用fseek移动到文件最后写,可总是不能成功。
程序如下:
- <code>switch(nflag)
- {
- case 1:
- {
- printf("输入要加密的文字。");
- scanf("%s", scr);
-
- len = strlen(scr);
- i = 0;
-
- FILE * fp;
- fp = fopen("mw.txt", "wb");
- while(len > 0)
- {
- char sencry[8];
- if(len < 8)
- {
- strncpy(sencry , &scr[i], strlen(scr));
- }
- else
- {
- strncpy(sencry , &scr[i], 8);
- }
- len = len - 8;
- DES(sencry , key, 1);
- fseek(fp, 0L, 2);//这个地方,老实移动不到文件尾部。而且有时会报错。
- fwrite(sencry, 8, 1, fp);
- strncpy(&dest[i], sencry , 8);
- i = i + 8;
- }
- dest[i+1] = '\0';
- printf("%s", dest);
- fclose(fp);
- break;
- }
- case 0:
- {
- char sencry[8];
- //printf("请输入密文。");
- //scanf("%s", scr);
-
- i = 0;
- FILE* fp;
- fp = fopen("mw.txt", "r+");
-
- len = fread(scr, 8, 1, fp);
- //len = strlen(scr);
- while(len > 0)
- {
- char sencry[8];
- strncpy(sencry , &scr[i], 8);
- len = len - 8;
-
- DES(sencry , key, 0);
-
- strncpy(&dest[i], sencry , 8);
-
- i = i + 8;
- }
- dest[i+1] = '\0';
- printf("%s", dest);
- break;
- }
- }
复制代码
总是自动覆盖以前的密文,高手给点指点啊。
虽然经常用,可为什么今天不行了啊。
[ 本帖最后由 guhan010 于 2007-1-23 12:41 编辑 ] |
|