真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

加密解密函數(shù)c語言 加密解密函數(shù)c語言代碼

用C語言編寫一個與此加密函數(shù)對應的解密函數(shù)

樓主這個加密算法對不同的char a會加密出來的數(shù)據(jù)不是唯一的,是有可能相同的,這種加密算法沒有辦法解密的。

成都創(chuàng)新互聯(lián)公司客戶idc服務中心,提供內(nèi)江服務器托管、成都服務器、成都主機托管、成都雙線服務器等業(yè)務的一站式服務。通過各地的服務中心,我們向成都用戶提供優(yōu)質(zhì)廉價的產(chǎn)品以及開放、透明、穩(wěn)定、高性價比的服務,資深網(wǎng)絡工程師在機房提供7*24小時標準級技術(shù)保障。

比如char a = 3,加密出來char b = 8;char a = 4,加密出來char b = 8

如果給一個加密后的char b = 8的話,這個是不可能解密出來對應的數(shù)據(jù)的。

加密算法要對不同的數(shù)據(jù)加密出來的數(shù)據(jù)也要是不同的。

c語言加密解密算法

這里使用的是按位加密,按ASCII碼進行加密的算法自己寫個,很容易的。

#includestdio.h

#includestdlib.h

#includeconio.h

#includestring.h

void

dofile(char

*in_fname,char

*pwd,char

*out_fname);/*對文件進行加密的具體函數(shù)*/

void

usage(char

*name);

void

main(int

argc,char

*argv[])/*定義main()函數(shù)的命令行參數(shù)*/

{

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

{/*如果命令行參數(shù)正確,便直接運行程序*/

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");

}

}

/*加密子函數(shù)開始*/

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);/*關(guān)閉源文件*/

fclose(fp2);/*關(guān)閉目標文件*/

}

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);

}

編寫函數(shù)完成字符串的加密與解密(c語言)?

C語言代碼和運行結(jié)果如下:

輸出符合示例,加解密均正確,望采納~

附源碼鏈接:字符串加解密

c語言文件加密和解密

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

1、首先打開VC++6.0;

2、選擇文件,新建;

3、選擇C++ source file 新建一個空白文檔;

4、聲明頭文件

#includestdio.h

#includestdlib.h

#includestring.h

首先寫個加密函數(shù),算法就是簡介里說的;

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);

}

}

寫解密子函數(shù):與加密的過程相反; 

 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);

}

}

輸出函數(shù),輸出文件內(nèi)容

void?OutputFile(FILE?*fp)

{

char?ch;

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

putchar(ch);

}

 主函數(shù),主要調(diào)用這幾個函數(shù)

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語言設計一個簡單的加密解密程序

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);

}

}


網(wǎng)站名稱:加密解密函數(shù)c語言 加密解密函數(shù)c語言代碼
轉(zhuǎn)載來源:http://weahome.cn/article/hjihch.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部