C语言文件加密与解密

daniel0999 2011-06-12 07:13:52
题目要求:
用C语言做一个“文件加密解密程序”,程序先输入某个路径,然后选择加密还是解密,接着输入密钥,执行程序,生成同名的扩展名为“.enf”的文件。比如原来文件名为“test.doc”,加密后为“test.doc.enf”,解密后为“test.doc”。
***************************************
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<ctype.h>
#include<conio.h>
int repeat(void);
main()
{
FILE *fp;
char fname[50];
int x=1,t;
L: while(x)
{
printf("****************\n");
printf("请输入文件路径\n");
scanf("%s",fname);
if(fp=fopen(fname,"rb+")==NULL)
{
printf("\t文件路径输入错误!重新输入?(y/n)\n");
fflush(stdin);
x=repeat();
goto L ;
}
else x=0;
}
a: printf("\t*******************************\n");
printf("\t 1 加密文件\n");
printf("\t 2 解密文件\n");
printf("\t*******************************\n");
printf("\t请选择:\n");
t=getch();
if((t!='1')&&(t!='2'))
{
goto a;
}
}


加密函数
解密函数

int repeat(void)
{
char ch;
fflush(stdin);
scanf("%c",&ch);
if(ch=='y'||ch=='Y')
return 1;
else return 0;
}
自己已经把大概操作写好了,就差加密函数与解密函数了,求高人帮忙,补充完整。
...全文
541 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ryfdizuo 2011-06-12
  • 打赏
  • 举报
回复
ryfdizuo 2011-06-12
  • 打赏
  • 举报
回复
#include   <stdio.h>   
#include <stdlib.h>
#include <string.h>
int Encrypt(char* cSrc,char* cDest)
{
char c;
int i,h,l,j=0;
for (i=0;i<(int)strlen(cSrc);i++)
{
c=cSrc[i];
h=(c>>4)&0xf;
l=c&0xf;
cDest[j]=h+'x';
cDest[j+1]=l+'z';
j+=2;
}
cDest[j]='\0';
return 0;
}
int Decrypt(char* cSrc,char* cDest)
{
int i,h,l,m,n,j=0;
for (i=0;i<(int)strlen(cSrc);i=i+2)
{
h=(cSrc[i]-'x');
l=(cSrc[i+1]-'z');
m=(h<<4);
n=(l&0xf);
cDest[j]=m + n;
j++;
}
cDest[j]='\0';
return 0;
}
int main(int argc, char *argv[])
{
char dest1[128]="\0";
char dest2[128]="\0";
char src[128]="\0";
printf("请输入源字符串:");
scanf("%s",src);
printf("长度为:%d\n",strlen(src));
Encrypt(src,dest1);
printf("长度为:%d\n",strlen(dest1));
printf("加密后的字符串为:%s\n",dest1);
Decrypt(dest1,dest2);
printf("还原后的字符串为:%s\n",dest2);
printf("长度为:%d\n",strlen(dest2));

system("PAUSE");
return 0;
}

lz 参考一下。

70,023

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧