導航:首頁 > 文檔加密 > c語言文件加密解密的感受

c語言文件加密解密的感受

發布時間:2023-05-11 22:18:21

① 關於用C語言對文件進行加密和解密

ch=ch^*(pwd+i); //對讀取的一個字元,進行異或
重點是這,,,,,,就是使用密碼,對源文件逐byte異或、
if(i>9){
i=0;
}

密碼也循環使用。
~~~~~~~~~~~~

② c語言中的文件加密

首先打開VC++6.0

選擇文件,新建

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

聲明頭文件
#include<stdio.h>
#include<stdlib.h>
#include<string.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語言對文件進行加密和解密急求......................

文件分為文本文件和二進制文件。加密方法也略有不同。
1、文本文件
加密的主要是文本的內容,最簡單的方法就是修改文檔的內容,比如1.txt中的文件內容:
abcd
只要給每一個字元+1,就可以實現加密。文件內容即會變為
bcde

2、二進制文件加密
二進制文件加密也就是對應用程序加密,需要理解可執行文件格式,比如Windows平台的Exe文件它是PE結構,Linux上的可執行文件是ELF結構,要對這樣的程序進行加密,實際上是開發一種叫做「殼」的程序,這種程序的開發,需要將扎實的底層基礎,同時也需要對軟體加密解密有細致的理解,比如流行的vmprotect、z殼以及早些年的upx殼、aspack等等。

3、無論哪種加密都牽涉到文件操作的問題,使用C語言進行文件操作時,極少使用C標准庫中的I/O函數,大多數使用操作系統提供的內存文件映射相關的API函數,有興趣,可以搜索相關的資料。

④ C語言編寫對文件加密及解密

常用簡單的加密就是把字元移位,讀取一個字元,將它+100,然後存為新文件中,解密時就讀取-100,然後就是原文件了。還有就是讀個字元和一個值異或,解密時還用這個加密的異或一遍,比較省力,一個方法就完成加解密了。

⑤ 用C語言實現文件的加密與解密的思路是什麼

設置加密演算法,如將文件以二進制打開,每個位元組加(或減、乘、除、模等等)一個數,設置類似的一個加密演算法。將該文件重新生成一次。完成加密過程。解密過程既是對加密過程的逆運算,保證將沒個位元組還原成為文件原貌即可。另外,不一定針對每個位元組進行運算,加密的位元組仍然可以通過演算法確定,例如,奇數位元組、偶數位元組等進行加密操作。

⑥ c語言程序設計文件加密解密

#include<stdio.h>
#include<string.h>
#include<stdlib.h>

main()
{
void sc(char *fp,char *key,int Flen,int Klen);
FILE *fp;
char *pBuf,filename[20],key[20],ch;

printf("請輸入選擇:A、加密 B、解密 C退出\n");
ch=getchar();
while(ch!='c'&&ch!='C')
{
if(ch=='a'||ch=='A'||ch=='b'||ch=='B')
{
printf("請輸入要打開的文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"rb"))==NULL)
{printf("無法打開文件,請注意輸入後綴!\n");<br/> exit(0);<br/> }

fseek(fp,0,SEEK_END);
int len=ftell(fp);
pBuf=new char[len+1];
rewind(fp);
fread(pBuf,1,len,fp);
pBuf[len]=0;
printf("%s\n",pBuf);
fclose(fp);

printf("請輸入加密/解密的密碼:\n");
scanf("%s",key);
sc(pBuf,key,len,strlen(key));

printf("請輸入保存加密文件的文件名:\n");
scanf("%s",filename);
if((fp=fopen(filename,"wb"))==NULL)
{printf("無法保存文件,請注意磁碟是否已滿!\n");<br/> exit(0);<br/> }
else
fwrite(pBuf,1,len,fp);
fclose(fp);
printf("請輸入選擇:A、加密 B、解密 C退出\n");
}
else {
printf("輸入錯誤,請重新輸入\n");
}
ch=getchar();
ch=getchar();
}
}
void sc(char *fp,char *key,int Flen,int Klen)
{int i,j,k;<br/>for(i=0;i<Flen;i+=Klen)<br/>for(j=i,k=0;k<Klen;j++,k++)<br/>fp[j]^=key[k];<br/><br/>fp[i]='\0';<br/>printf("%s\n",fp);<br/>}

⑦ 如何用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)
首先file1中存一些信息(直接在文件中手寫或者通過源程序從屏幕中讀取)
大致過程{
fp1 = fopen("file1", "w");//write
scanf("%c", &ch1);//用while循環多次寫入
fprintf(fp1, "%c", ch1);
}
第二:從文件中讀取內容,和0x6a異或

fp2 = fopen ("file1", "r")//read
fp3 = fopen ("file2", "w")//write

fscanf(fp2, "%c", &ch2);//用while循環多次讀出
異或操作,結果賦給ch3;
printf("%c", ch );//屏幕顯示
fprintf(fp3, "%c", ch3);//寫入file2中

第三:讀出file2的內容
fp3 = fopen ("file2", "r")//read

fscanf(fp3, "%c", &ch4);//用while循環多次讀出
printf(「%c」, ch );

大概過程就是這樣,文件主要是自己寫才能掌握,這里就不把代碼給你了。
上面的部分代碼給你參考一下。有問題歡迎詢問
源程序只是負責操作;file1和file2是存放數據的文件,可以看成結構體。
文件操作好好學,很重要!

⑨ c語言文件加密和解密

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

1、首先打開VC++6.0;

voidDecryptFile(FILE*sfp,FILE*dfp,charpwd)
{
charch;
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);
}
}

輸出函數,輸出文件內容
voidOutputFile(FILE*fp)
{
charch;
while((ch=fgetc(fp))!=EOF)
putchar(ch);
}
主函數,主要調用這幾個函數
intmain()
{
/*用戶輸入的要加密的文件名*/
charsfilename[20];
/*用戶輸入加密後保存的文件名*/
chardfilename[20];
/*用來保存密碼字元*/
charpwd;
FILE*sfp,*dfp;

printf(": ");
/*得到要加密的文件名*/
gets(sfilename);
/*得到加密後你要的文件名*/
printf(": ");
gets(dfilename);
/*得到加密字元*/
printf("PleaseinputyourPassword: ");
//scanf("%c",&pwd);
pwd=getch();
/*屏幕以*來表示輸入的加密字元*/
printf("* ");
/*以只讀方式打開要加密的文件*/
if((sfp=fopen(sfilename,"r"))==0)
{
printf("Can'topenthefile:%s ",sfilename);
exit(0);
}
/*輸出要加密的文件*/
printf(": ");
OutputFile(sfp);
/*建立加密後的文件*/
if((dfp=fopen(dfilename,"w+"))==0)
{
printf("Can'topenorcreatethefile:%s ",dfilename);
//exit(0);
}
/*文件加密*/
fseek(sfp,0L,SEEK_SET);
EncryptFile(sfp,dfp,pwd);
printf(" Encryptedthefilesuccessfully! ");
/*輸出加密後的文件*/
printf(": ");
fseek(dfp,0L,SEEK_SET);
OutputFile(dfp);
fclose(sfp);
fclose(dfp);
getch();
return0;
}


⑩ C語言 文件加密解密

加密:

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>

void dofile(char *in_fname,char *pwd,char *out_fname);/*對文件進行加密的具體函數*/

void main(int argc,char *argv[])/*定義main()函數的命令行參數*/
{
char in_fname[30];/*用戶輸入的要加密的文件名*/
char out_fname[30];
char pwd[8];/*用來保存咐答密碼*/

if(argc!=4){/*容錯處理*/
printf("\nIn-fname:\n");
gets(in_fname);/*得到要加密的文件名*/

printf("Password:\n");
gets(pwd);/*得到密碼*/

printf("Out-file:\n");
gets(out_fname);/*得到加密後你要的文件名*/

dofile(in_fname,pwd,out_fname);
}
else{/*如果命令行參數正確,便直接運行程序*/
strcpy(in_fname,argv[1]);
strcpy(pwd,argv[2]);
strcpy(out_fname,argv[3]);
dofile(in_fname,pwd,out_fname);
}

}

/螞啟*加密子函數開始*/
void dofile(char *in_fname,char *pwd,char *out_file)
{
FILE *fp1,*fp2;
register char ch;
int j=0;
int j0=0;

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(pwd[++j0]);
ch=fgetc(fp1);

/*加密演算法開始*/
while(!feof(fp1)){
fputc(ch^pwd[j>=j0?j=0:j++],fp2);/*異或後寫入fp2文件*/
ch=fgetc(fp1);
}
fclose(fp1);/*關閉源文件*/
fclose(fp2);/*關閉目標文件*/
}

/*程序結束*/

閱讀全文

與c語言文件加密解密的感受相關的資料

熱點內容
怎樣製作貼天花板的解壓球 瀏覽:337
伺服器如何打開蘋果 瀏覽:96
高響應比演算法的實現 瀏覽:848
windows寫命令行 瀏覽:61
騰訊天津數據中心伺服器雲空間 瀏覽:974
單片機掃描按鍵 瀏覽:386
如何設置google伺服器 瀏覽:695
linuxtrace工具源碼 瀏覽:178
源碼第二次開發 瀏覽:784
如何獲取網頁php源碼 瀏覽:729
還用飛那麼源碼 瀏覽:204
雲伺服器鏡像可以隨時更換嗎 瀏覽:92
r600a壓縮機多少錢 瀏覽:237
程序員那麼可愛第幾集在重慶相遇 瀏覽:674
上班兩公里源碼 瀏覽:818
南寧溯源碼燕窩訂制 瀏覽:933
在個人文件夾中新建文件 瀏覽:445
中國國家地理pdf下載 瀏覽:108
幾套房子抵押可以解壓其中一套嗎 瀏覽:570
微愛app室外地板怎麼裝飾 瀏覽:231