? ?廣州龍躍自動(dòng)化專(zhuān)業(yè)破解解密各類(lèi)plc加密,全國(guó)24小時(shí)聯(lián)系手機(jī):18520649527 【關(guān)技術(shù)】 微信:guanshiyou009如有任何問(wèn)題請(qǐng)打手機(jī)或者添加微信,謝謝支持
PLC解密,全國(guó)上門(mén)PLC解密維修找龍躍自動(dòng)化PLC解密網(wǎng)用c語(yǔ)言plc解密,專(zhuān)業(yè)PLC解密師傅電話153 8444 7766;提供三菱plc解密,臺(tái)達(dá)plc解密,西門(mén)子plc解密,信捷plc解密等各類(lèi)PLC解密plc解密教程及觸摸屏解密維修服務(wù),【加微信:guanshiyou009】
如何用C語(yǔ)言對(duì)文件進(jìn)行加密和解密?
對(duì)于加密要求不高的完全可以自己定義規(guī)則來(lái)進(jìn)行加密。這種加密是很簡(jiǎn)單很自由的,例如你在存文件的時(shí)候可以將文件中的每個(gè)字符都加上一個(gè)數(shù),然后讀取該文件的時(shí)候再每個(gè)字符相應(yīng)地減去那個(gè)數(shù),即可實(shí)現(xiàn)就簡(jiǎn)單的加密,這樣你儲(chǔ)存的文件看上去就是亂碼了。只是這個(gè)規(guī)則太簡(jiǎn)單,規(guī)則你可以自己定,加密與解密對(duì)著來(lái)就行了。
下面程序用異或操作對(duì)文件進(jìn)行加密和解密
/******************設(shè)計(jì)思路******************/
//根據(jù)用戶輸入的加密/機(jī)密密碼,
//每次都拿原文件和密碼等長(zhǎng)度的一個(gè)字符串和密碼
//對(duì)應(yīng)元素異或進(jìn)行加密/解密
//另外因?yàn)槭怯卯惢蚍椒?,所以加密和解密就是同一個(gè)程序
//即按照同樣的加密即是對(duì)文件的解密
#include
#include
#include
#include
#include
charfilename[256];//原文件
charpassword[256];//加密/解密密碼
constcharfilenametemp[]="temp15435255435325432543.temp";//加密/解密中間文件
voidinputpass(char*pass);//密碼輸入以"******"顯示
voidmain(){
FILE*fp;//加密/解密的文件
FILE*fptemp;//加密/解密過(guò)程臨時(shí)文件
intpwdlen;//密碼長(zhǎng)度
inti=0;//計(jì)數(shù)器
charch=0;//讀入的字符
printf("請(qǐng)輸入要加密/解密的文件名(全路徑名):\n");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL){
printf("找不到文件%s\n",filename);
exit(1);
}//if
printf("請(qǐng)輸入要加密/解密的密碼:\n");
inputpass(password);
pwdlen=strlen(password);
if(pwdlen==0){
printf("密碼不能為空,加密/解密失敗\n");
exit(1);
}//if
fptemp=fopen(filenametemp,"wb");//打開(kāi)中間文件
while(1){
ch=fgetc(fp);//從原文件讀入一個(gè)字符
if(feof(fp)){//已經(jīng)讀到文件尾
break;//退出循環(huán)
}
ch^=password[i++];//對(duì)原字符和密碼進(jìn)行異或操作
fputc(ch,fptemp);//將異或結(jié)果寫(xiě)入中間文件
if(i==pwdlen){//使得原文件每和密碼長(zhǎng)度相同的固定長(zhǎng)度異或加密
i=0;
}
}//while
fclose(fp);//關(guān)閉打開(kāi)原文件
fclose(fptemp);//關(guān)閉打開(kāi)中間文件
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");
}
[img]C語(yǔ)言設(shè)計(jì)一個(gè)簡(jiǎn)單的加密解密程序
C語(yǔ)言設(shè)計(jì)一個(gè)簡(jiǎn)單的加密解密程序如下:
加密程序代碼:
#includestdio.h
main()
{
char c,filename[20];
FILE *fp1,*fp2;
printf("請(qǐng)輸入待加密的文件名:\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("請(qǐng)輸入待解密文件名:\n");
scanf("%s",filename);
printf("請(qǐng)輸入驗(yàn)證碼:\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("驗(yàn)證碼錯(cuò)誤!請(qǐng)重新輸入:\n");
scanf("%s",filename);
}
}
c語(yǔ)言文件加密和解密
c語(yǔ)言文件加密和解密方法如下:
1、首先打開(kāi)VC++6.0;
2、選擇文件,新建;
3、選擇C++ source file 新建一個(gè)空白文檔;
4、聲明頭文件
#includestdio.h
#includestdlib.h
#includestring.h
首先寫(xiě)個(gè)加密函數(shù),算法就是簡(jiǎn)介里說(shuō)的;
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);
}
}
寫(xiě)解密子函數(shù):與加密的過(guò)程相反;
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)用這幾個(gè)函數(shù)
int?main()
{
/*用戶輸入的要加密的文件名*/
char?sfilename[20];
/*用戶輸入加密后保存的文件名*/
char?dfilename[20];
/*用來(lái)保存密碼字符*/
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();
/*屏幕以*來(lái)表示輸入的加密字符*/
printf("*\n");
/*以只讀方式打開(kāi)要加密的文件*/
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;
}
? ?廣州龍躍自動(dòng)化專(zhuān)業(yè)破解解密各類(lèi)plc加密,全國(guó)24小時(shí)聯(lián)系手機(jī):18520649527 【關(guān)技術(shù)】 微信:guanshiyou009如有任何問(wèn)題請(qǐng)打手機(jī)或者添加微信,謝謝支持