c语言加解密函数,c语言加密解密程序

关于C语言中加密解密的问题!!!!!!!

fseek(fp,0,SEEK_END); //将位置指针移到文件末尾 SEEK_END是宏定义

站在用户的角度思考问题,与客户深入沟通,找到农安网站设计与农安网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都做网站、企业官网、英文网站、手机端网站、网站推广、主机域名雅安服务器托管、企业邮箱。业务覆盖农安地区。

//表示文件尾

int len=ftell(fp); // ftell()函数可以得到

//文件当前位置相对于文件首的偏移字节数 .

//在这也就是得到了文件的长度。

pBuf=new char[len+1]; //分配文件长度+1个字符的空间

rewind(fp); //位置指针回到文件首部

fread(pBuf,1,len,fp); //将文件内容读入到刚才分配的Buffer中

pBuf[len]=0; //buffer的最后一位置为0 即'\0'

//表示字符串的结束

printf("%s\n",pBuf); //打印出buffer内容 即文件内容

fclose(fp); // 关闭文件指针

printf("请输入加密/解密的密码:\n");

scanf("%s",key); //终端输入加密或解密的密码

sc(pBuf,key,len,strlen(key)); //进行加密/解密 输入pBuf 加密/解密后文本仍

//放在pBuf中

printf("请输入保存加密文件的文件名:\n");

scanf("%s",filename); //终端输入加密/解密后保存的文件名

if((fp=fopen(filename,"wb"))==NULL) //创建该文件

{printf("无法保存文件,请注意磁盘是否已满!\n");

exit(0); }

else

fwrite(pBuf,1,len,fp); //将加密/解密后文本写到文件中

fclose(fp); //关闭文件

void sc(char *fp,char *key,int Flen,int Klen)//是一个加密/解密函数

{int i,j,k;

for(i=0;iFlen;i+=Klen)

for(j=i,k=0;kKlen;j++,k++)

fp[j]^=key[k];fp[i]='\0';printf("%s\n",fp);}

C语言(文件的移位与加密解密)

这道题,并不难,只是楼主,没有说清,是就字母移位吗?

但是看你的例子,有不全是。

程序如下:

#include stdio.h

#include stdlib.h

FILE *source;//源文件

FILE *destination;//目标文件

int key;//密钥

char file[100];//文件名

void encryption()//加密

{

char ch;

printf("请输入要加密的文件名\n");

scanf("%s",file);

if((source=fopen(file,"r"))==NULL)

{

printf("无法打开文件!\n");

exit(0);

}

printf("请输入加密后的文件名\n");

scanf("%s",file);

if((destination=fopen(file,"w"))==NULL)

{

printf("无法创建文件!\n");

exit(0);

}

printf("请输入密钥\n");

scanf("%d",key);

ch=fgetc(source);

while(ch!=EOF)

{

if(ch=='\n')

{

fputc(ch,destination);

ch=fgetc(source);

continue;

}

ch+=key;

fputc(ch,destination);

ch=fgetc(source);

}

fclose(source);

fclose(destination);

}

void decrypt()//解密

{

char ch;

printf("请输入要解密的文件名\n");

scanf("%s",file);

if((source=fopen(file,"r"))==NULL)

{

printf("无法打开文件!\n");

exit(0);

}

printf("请输入加密后的文件名\n");

scanf("%s",file);

if((destination=fopen(file,"w"))==NULL)

{

printf("无法创建文件!\n");

exit(0);

}

printf("请输入密钥\n");

scanf("%d",key);

ch=fgetc(source);

while(ch!=EOF)

{

if(ch=='\n')

{

fputc(ch,destination);

ch=fgetc(source);

continue;

}

ch-=key;

fputc(ch,destination);

ch=fgetc(source);

}

fclose(source);

fclose(destination);

}

int main()//主函数提供菜单

{

int choice=0;

printf("******************\n");

printf("1 文件加密\n");

printf("2 文件解密\n");

printf("3 退出\n");

printf("******************\n");

printf("请输入1 2 3选择操作\n");

scanf("%d",choice);

switch(choice)

{

case 1:encryption();break;

case 2:decrypt();break;

case 3:break;

}

return 0;

}

c语言加密解密算法

这里使用的是按位加密,按ASCII码进行加密的算法自己写个,很容易的。

#includestdio.h

#includestdlib.h

#includeconio.h

#includestring.h

void

dofile(char

*in_fname,char

*pwd,char

*out_fname);/*对文件进行加密的具体函数*/

void

usage(char

*name);

void

main(int

argc,char

*argv[])/*定义main()函数的命令行参数*/

{

char

in_fname[30];/*用户输入的要加密的文件名*/

char

out_fname[30];

char

pwd[10];/*用来保存密码*/

if(argc!=4)

{/*容错处理*/

usage(argv[0]);

printf("\nIn-fname:\n");

gets(in_fname);/*得到要加密的文件名*/

while(*in_fname==NULL)

{

printf("\nIn-fname:\n");

gets(in_fname);

}

printf("Password

6-8:\n");

gets(pwd);/*得到密码*/

while(*pwd==NULL

||

strlen(pwd)8

||

strlen(pwd)6)

{

printf("Password

6-8:\n");

gets(pwd);

}

printf("Out-file:\n");

gets(out_fname);/*得到加密后你要的文件名*/

while(*in_fname==NULL)

{

printf("Out-file:\n");

gets(out_fname);

}

while(!strcmp(in_fname,out_fname))

{

printf("文件名不能和源文件相同\n");

printf("Out-file:\n");

gets(out_fname);

}

dofile(in_fname,pwd,out_fname);

printf("加密成功,解密请再次运行程序\n");

}

else

{/*如果命令行参数正确,便直接运行程序*/

strcpy(in_fname,argv[1]);

strcpy(pwd,argv[2]);

strcpy(out_fname,argv[3]);

while(*pwd==NULL

||

strlen(pwd)8

||

strlen(pwd)6)

{

printf("Password

faied!\n");

printf("Password

6-8:\n");

gets(pwd);

}

while(!strcmp(in_fname,out_fname))

{

printf("文件名不能和源文件相同\n");

printf("Out-file:\n");

gets(out_fname);

while(*in_fname==NULL)

{

printf("Out-file:\n");

gets(out_fname);

}

}

dofile(in_fname,pwd,out_fname);

printf("加密成功,解密请再次运行程序\n");

}

}

/*加密子函数开始*/

void

dofile(char

*in_fname,char

*pwd,char

*out_file)

{

FILE

*fp1,*fp2;

register

char

ch;

int

j=0;

int

j0=strlen(pwd);

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(j0=0)

{

ch=fgetc(fp1);

while(!feof(fp1))

{

fputc(ch^pwd[j=j0?j=0:j++],fp2);/*异或后写入fp2文件*/

ch=fgetc(fp1);

}

j0--;

}

fclose(fp1);/*关闭源文件*/

fclose(fp2);/*关闭目标文件*/

}

void

usage(char

*name)

{

printf("\t=======================File

encryption======================\n");

printf("\tusage:

%s

In-fname

password

out_fname\n",name);

printf("\tExample:

%s

file1.txt

12345678

file2.txt\n",name);

}

编写函数完成字符串的加密与解密(c语言)?

C语言代码和运行结果如下:

输出符合示例,加解密均正确,望采纳~

附源码链接:字符串加解密

C语言设计一个简单的加密解密程序

C语言设计一个简单的加密解密程序如下:

加密程序代码:

#includestdio.h

main()

{

char

c,filename[20];

FILE

*fp1,*fp2;

printf("请输入待加密的文件名:\n");

scanf("%s",filename);

fp1=fopen(filename,"r");

fp2=fopen("miwen.txt","w");

do

{

c=fgetc(fp1);

if(c=32c=126)

{

c=c-32;

c=126-c;

}

if(c!=-1)

fprintf(fp2,"%c",c);

}

while(c!=-1);

}

解密程序代码:

#includestdio.h

#includestring.h

main()

{

char

c,filename[20];

char

yanzhengma[20];

FILE

*fp1,*fp2;

printf("请输入待解密文件名:\n");

scanf("%s",filename);

printf("请输入验证码:\n");

scanf("%s",yanzhengma);

if(strcmp(yanzhengma,"shan")==0)

{

fp1=fopen(filename,"r");

fp2=fopen("yuanwen.txt","w");

do

{

c=fgetc(fp1);

if(c=32c=126)

{

c=126-c;

c=32+c;

}

if(c!=-1)

fprintf(fp2,"%c",c);

}

while(c!=-1);

}

else

{

printf("验证码错误!请重新输入:\n");

scanf("%s",filename);

}

}


当前文章:c语言加解密函数,c语言加密解密程序
分享路径:http://scyanting.com/article/hseeec.html