c语言加密函数怎么设置 c语言实现加密解密

如何用C语言对文件进行加密和解密?

对于加密要求不高的完全可以自己定义规则来进行加密。这种加密是很简单很自由的,例如你在存文件的时候可以将文件中的每个字符都加上一个数,然后读取该文件的时候再每个字符相应地减去那尺念个数,即可实现就简单的加密,这样你储存的文件看上去就是乱码了。只是这个规则太简单,规则你可以自己定,加密与解密对着来就行了。

成都创新互联公司专注于敦煌网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供敦煌营销型网站建设,敦煌网站制作、敦煌网页设计、敦煌网站官网定制、重庆小程序开发服务,打造敦煌网络公司原创品牌,更为您提供敦煌网站排名全网营销落地服务。

下面程序用异或操作对文件进行加密和解密

/******************设计思路******************/

//根据用户输入的加密/机密密码,

//每次都拿原文灶困滚件和密码等长度的一个字符串和密码

//对应元素异或进行加密/解密

//另外因为是用异或方法,所以加密和解密就是同一个程序

//即按照同样的加密即是对文件的解密

#include

#include

#include

#include

#include

charfilename[256];//原文件

charpassword[256];//加密/解密密码

constcharfilenametemp[]="temp15435255435325432543.temp";//加密/解密中间文件

voidinputpass(char*pass);//密码输入以"******"显示

voidmain(){

FILE*fp;//加密/解密的文件

FILE*fptemp;//加密/解密过程临时文件

intpwdlen;//密码长度

inti=0;//计数器

charch=0;//读入的字符

printf("请输入要加密/解密的文件名(全路径名):\n");

gets(filename);

if((fp=fopen(filename,"rb"))==NULL){

printf("找不到文件%s\n",filename);

exit(1);

}//if

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

inputpass(password);

pwdlen=strlen(password);

if(pwdlen==0){

printf("密码不能为空,加密/解密失败\n");

exit(1);

}//if

fptemp=fopen(filenametemp,"wb");//打开中间文件

while(1){

ch=fgetc(fp);//从原文件读入一个字符

if(feof(fp)){//已经读到文件尾

break;//退出循环

}

ch^=password[i++];//对原字符和密码进行异或操作

fputc(ch,fptemp);//将异或结果写入中间文件

if(i==pwdlen){//使得原文件每和密码长度相同的固定长度异或加密

i=0;

}

}//while

fclose(fp);//关闭打开原文件

fclose(fptemp);//关闭打开中间文件

remove(filename);//删除原文件

rename(filenametemp,filename);//将隐余中间文件重命名为原文件

printf("加密/解密成功\n");//至此加密/解密成功

}

//密码输入以"******"显示

voidinputpass(char*pass){

inti=0;

charc;

while(isprint(c=getch())){

pass[i++]=c;

//printf("*");

}

pass[i]='\0';

printf("\n");

}

c语言文件加密和解密

c语言文件加密和解密方法如下:

1、首先打开VC++6.0;

2、选择文件,新建;

3、选择C++ source file 新建一个空白文档;

4、声明头文件

#includestdio.h

#includestdlib.h

#includestring.h

首先写个加密函数,算法就是简介里说的;

void EncryptFile(FILE *sfp,FILE *dfp,char pwd)

{

char ch;

if(sfp==0||dfp==0)

{

printf("ERROR!\n");

return;

}

while((ch=fgetc(sfp))!=EOF)

{

if((ch='a')(ch='z'))

{

ch=(ch-'a'+1)%26+'a';

ch=ch^pwd;

}

if((ch='A')(ch='Z'))

{

ch=(ch-'A'+1)%26+'A';

ch=ch^pwd;

}

fputc(ch,dfp);

 哪银 }

}

写解密子函数:与加密的过程相反; 

 void DecryptFile(FILE *sfp,FILE *dfp,char pwd)

{

char ch;

while((ch=fgetc(sfp))!=EOF)

{

if((ch='a')(ch='z'))

{

ch=ch^pwd;

ch=(ch-'a'+25)%26+'a';

}

if((ch='A')(ch='Z'))

{

ch=ch^pwd;

李梁宴ch=(ch-'A'+25)%26+'A';

}

fputc(ch,dfp);

}

}

输出函数,输出文件内容

void OutputFile(FILE *fp)

{

char ch;

while((ch=fgetc(fp))!=EOF)

putchar(ch);

}

 主函数,主要调用这几个函数

int main()

{

/*用户输入的要加密的文件名*/

char sfilename[20];

/*用户输入加密后保存的文件名*/

char dfilename[20];

/*用来保存密码字符*/

char pwd;

FILE *sfp,*dfp;

printf("\nPlease input filename to be encrypted:\n");

/*得到要加密的文件名*/

gets(sfilename);

/*得到加密后你要的文件名*/

printf("input filename to save the encrypted file:\n");

gets(dfilename);

/*得到加密字符*/

printf("Please input your Password:\n");

//scanf("%c",渣答pwd);

pwd=getch();

/*屏幕以*来表示输入的加密字符*/

printf("*\n");

/*以只读方式打开要加密的文件*/

if((sfp=fopen(sfilename,"r"))==0)

{

printf("Can't open the file :%s\n",sfilename);

exit(0);

}

/*输出要加密的文件*/

printf("\nThe the text of file to be encrypted is:\n");

OutputFile(sfp);

/*建立加密后的文件*/

if((dfp=fopen(dfilename,"w+"))==0)

{

printf("Can't open or create the file :%s\n",dfilename);

//exit(0);

}

/*文件加密*/

fseek(sfp,0L,SEEK_SET);

EncryptFile(sfp,dfp,pwd);

printf("\n\nEncrypted the file successfully!\n");

/*输出加密后的文件*/

printf("\nAfter encrypting the text of file is:\n");

fseek(dfp,0L,SEEK_SET);

OutputFile(dfp);

fclose(sfp);

fclose(dfp);

getch();

return 0;

}

 

c语言编写字符串加密函数 不要写得太难啊

#include stdio.h

#include ctype.h

char *encrypt(char *text) {

char c;

char *p = text;

for (; *text; ++text) {

c = *text;

if (isdigit(c))

*text = '0' + '9' - c;

else if (islower(c)) {

c = c + 3;

if (c  'z')

c = c - 26;

*text = c;

敏正    } else if (isupper(c)) {

c = c + 3;

if (c  'Z')

c = c - 26;

*text = c;

}

}

桥裤悔 return p;

}

int main() {

char text[100];

纯御printf("输入明文:");

scanf("%s", text);

printf("密文:%s\n", encrypt(text));

getchar();

}


当前名称:c语言加密函数怎么设置 c语言实现加密解密
转载源于:http://azwzsj.com/article/ddpgpop.html