文件加密c語言
設置加密演算法,如將文件以二進制打開,每個位元組加(或減、乘、除、模等等)一個數,設置類似的一個加密演算法。將該文件重新生成一次。完成加密過程。解密過程既是對加密過程的逆運算,保證將沒個位元組還原成為文件原貌即可。另外,不一定針對每個位元組進行運算,加密的位元組仍然可以通過演算法確定,例如,奇數位元組、偶數位元組等進行加密操作。
② 急求 C語言文件加密
親 這個問題比較常見哦 也挺簡單的 也就是給文件加密
將要加密的文檔打開
點擊工具欄最左的藍色背景「Word」點擊「選項」
點擊「選項」後在其中找到「安全性」
在這里直接輸入密碼即可
在這里你即可以編輯打開密碼,也可以設置編輯密碼(就說別人可以打開,但是想編輯的話,必須輸入正確的密碼,否則不能編輯哦)
這時的你如果在打開此文件就需要輸入密碼了
親 有什麼不明白的 看不懂想要操作流程圖片的 你可以追問我哦
③ C語言關於文件加密
我不會。
給文件加密,你可以在網路上下載超級加密3000 這是一款功能強大的文件和文件夾加密和保護軟體。
超級加密3000有超快和最強的文件、文件夾加密功能、數據保護功能,文件夾、文件的粉碎刪除以及文件夾偽裝等功能。
超級加密 3000採用先進的加密演算法,使你的文件和文件夾加密後,真正的達到超高的加密強度,讓你的加密數據無懈可擊。
超級加密3000還支持加密文件的臨時解密,文件加密後,雙擊加密文件,在彈出密碼輸入對話框輸入正確的密碼選擇確定,該加密文件就處於臨時解密,文件使用完畢退出以後,它自動恢復到加密狀態,無需再加密。
超級加密3000是一款不可多得的文件加密軟體,您可以到網路上搜索超級加密3000給您的文件加密試試看。
④ C語言設計一個簡單的加密解密程序
C語言設計一個簡單的加密解密程序如下:
加密程序代碼:
#include<stdio.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>=32&&c<=126)
{
c=c-32;
c=126-c;
}
if(c!=-1)
fprintf(fp2,"%c",c);
}
while(c!=-1);
}
解密程序代碼:
#include<stdio.h>
#include<string.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>=32&&c<=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語言文件加密和解密方法如下:
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語言對文件進行加密和解密急求......................
文件分為文本文件和二進制文件。加密方法也略有不同。
1、文本文件
加密的主要是文本的內容,最簡單的方法就是修改文檔的內容,比如1.txt中的文件內容:
abcd
只要給每一個字元+1,就可以實現加密。文件內容即會變為
bcde
2、二進制文件加密
二進制文件加密也就是對應用程序加密,需要理解可執行文件格式,比如Windows平台的Exe文件它是PE結構,Linux上的可執行文件是ELF結構,要對這樣的程序進行加密,實際上是開發一種叫做「殼」的程序,這種程序的開發,需要將扎實的底層基礎,同時也需要對軟體加密解密有細致的理解,比如流行的vmprotect、z殼以及早些年的upx殼、aspack等等。
3、無論哪種加密都牽涉到文件操作的問題,使用C語言進行文件操作時,極少使用C標准庫中的I/O函數,大多數使用操作系統提供的內存文件映射相關的API函數,有興趣,可以搜索相關的資料。
⑦ 如何用C語言對文件進行加密和解密
對於加密要求不高的完全可以自己定義規則來進行加密。這種加密是很簡單很自由的,例如你在存文件的時候可以將文件中的每個字元都加上一個數,然後讀取該文件的時候再每個字元相應地減去那個數,即可實現就簡單的加密,這樣你儲存的文件看上去就是亂碼了。只是這個規則太簡單,規則你可以自己定,加密與解密對著來就行了。
下面程序用異或操作對文件進行加密和解密
/****************** 設計思路 ******************/
// 根據用戶輸入的加密/機密密碼,
// 每次都拿原文件和密碼等長度的一個字元串和密碼
// 對應元素異或進行加密/解密
// 另外因為是用異或方法,所以加密和解密就是同一個程序
// 即按照同樣的加密即是對文件的解密
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#include <stdlib.h>
char filename[256]; // 原文件
char password[256]; // 加密/解密密碼
const char filenametemp[] = "temp15435255435325432543.temp"; // 加密/解密中間文件
void inputpass(char *pass); //密碼輸入以"******"顯示
void main() {
FILE *fp; // 加密/解密的文件
FILE *fptemp; // 加密/解密過程臨時文件
int pwdlen; // 密碼長度
int i = 0; // 計數器
char ch = 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"); // 至此加密/解密成功
}
// 密碼輸入以"******"顯示
void inputpass(char *pass) {
int i = 0;
char c;
while(isprint(c = getch())) {
pass[i++] = c;
// printf("*");
}
pass[i] = '\0';
printf("\n");
}
⑧ c語言中的文件加密
//自己寫的加密,加密方法就是根據輸入的密碼對文件中的內容進行異或後存放在加密後的文件中
//轉載請聲明program by STU caige
#include<stdio.h>
#include<stdlib.h>
#include <conio.h>//getche()需要
#include<string.h>
char ch;
//異或函數
int YiHuo(FILE *f0,FILE *fp,int passwordnum,int move,char key)
{
while(fread(&ch,1,1,f0),!feof(f0))
{
if (key==49)//加密
{
ch=ch+move;
(char)(ch^=passwordnum);
fwrite(&ch,1,1,fp);
}
if (key==50)//解密
{
(char)(ch^=passwordnum);
ch=ch+move;
fwrite(&ch,1,1,fp);
}
}
}
int main()
{
//encrypt加密 decrypt解密
FILE *f0,*fe,*fd;
char fname0[50];
char efname[50]={0};
char dfname[50]={0};
char Password[50]={0},key=0,key2=0;
char sysfname[20]={0};
int p=0,passwordnum,move=0;//異或後移動的次數 ;
system("cls");
do
{
system("cls");
do
{
printf("1-----------加密文件\n");
printf("2-----------解密文件\n");
printf("Esc----------退出\n") ;
key=getch();//讀入一個鍵盤碼
}
while ((key!='1')&&(key!='2')&&(key!=27));
Password[50]=0;
passwordnum=0;
if (key==49)
{
system("cls");
printf("請輸入要加密的文件絕對路徑\n");
scanf("%s",fname0);
// while(key=0)
//打開原文件
if ((f0=fopen(fname0,"rb"))==NULL)
{
printf("文件打不開哦!\n");
key=0;//文件打開失敗時key的值改變
exit(0);
printf("加密失敗\n");
system("pause");
}
//只有文件fname0打開成功時才能繼續打開efname
if(key==49)
{
system("cls");
printf("請輸入完成加密的文件存儲路徑\n");
scanf("%s",efname);
if ((fe=fopen(efname,"w+"))==NULL)
{
printf("文件打不開哦!\n");
printf("加密失敗\n");
fclose(f0);
system("pause");
exit(0);
key=0;
}
}
//如果打開文件成功則開始輸入密碼
if(key==49)
{
system("cls");
printf("請輸入密碼\n");
scanf("%s",Password);
//把字元密碼轉化為整形來異或
for(p=0;Password[p]!=0;p++)
passwordnum+=((int)Password[p]);
move=(int)(passwordnum%9);
while (move>9)
move=(int)(move%9);
printf("%d",move);system("pause");
}
if (key==49)
{//異或加密
system("cls");
YiHuo(f0,fe,passwordnum,move,key);
printf("\n加密成功,您的輸出文件路徑為:\n");
printf("%s",efname);
fclose(f0);
fclose(fe);
}
}
if (key==50)
{
system("cls");
printf("請輸入要解密的文件絕對路徑\n");
scanf("%s",fname0);
// while(key=0)
//打開原文件
if ((f0=fopen(fname0,"rb"))==NULL)
{
printf("文件打不開哦!\n");
key=0;//文件打開失敗時key的值改變
exit(0);
printf("解密失敗\n");
system("pause");
}
//只有文件fname0打開成功時才能繼續打開dfname
if(key==50)
{
system("cls");
printf("請輸入完成解密的文件存儲路徑\n");
scanf("%s",dfname);
if ((fd=fopen(dfname,"w+"))==NULL)
{
printf("解密失敗");
fclose(f0);
system("pause");
printf("文件打不開哦!\n");
exit(0);
key=0;
}
}
//如果打開文件成功則開始輸入密碼
if(key==50)
{
system("cls");
printf("請輸入密碼\n");
scanf("%s",Password);
//把字元密碼轉化為整形來異或
for(p=0;Password[p]!=0;p++)
passwordnum+=((int)Password[p]);
move=(int)(passwordnum%9);
while (move>9)
move=(int)(move%9);
move=(-move);
}
if (key==50)
{//異或加密
system("cls");
YiHuo(f0,fd,passwordnum,move,key);
printf("\n解密成功,您的輸出文件路徑為:\n%S",dfname);
system("pause");
fclose(f0);
fclose(fd);
}
}
}
while(key!=27);//當key為0,即讀寫兩個文件都打開成功時才結束循環
return 0;
printf("\n謝謝使用!,program by STU caige\n");
system("pause");
}
⑨ c語言編寫的程序,在輸入密碼時,如何加密
加密和解密演算法是程序編制中的重要一環。試想,如果我們平時使用的騰訊QQ、支付寶支付密碼、今日頭條賬號密碼那麼輕易就被別人盜取的話,很多不可以預料的事情就會發生!
在現實生活中,我們遇到過太多QQ密碼被盜取的情況,有的朋友QQ被盜之後,騙子利用朋友間信任騙取錢財的事情屢見不鮮。支付寶也曾出現過支付寶賬戶被惡意盜取的事件,對用戶利益造成了嚴重損害!這些在技術上都指向了同一相關問題:軟體加密演算法的強壯程度。今天,小編利用C語言來簡單實現一種加密方法。下面是源代碼。
需要說明:程序利用了ascii碼值的按照一定規律變換實現加密,對於解密過程,則是加密的逆過程。下面是程序的運行結果。
4190閱讀
搜索
編程免費課程300節
初學編程100個代碼
java自學一般要學多久
5秒破解excel密碼
python必背100源代碼
40歲零基礎學編程
⑩ C語言怎樣給文件加密
這個加密有簡單的,有復雜的。要是簡單的就直接選擇文件中的某些欄位,將某些欄位進行1定的轉換或在文件中位置的變更等。也能夠將其中的每一個2進制讀取,然落後行1定的運算後再存儲,到達加密的效果。最後再依照1定的逆操作,恢復原來的文件,到達解密的效果。大致思路就是這樣的,具體就看你的加解密的演算法復雜與否了!舉個非常簡單的例子,可以將讀取的某個數與1個你自己知道的固定的數做「異或」運算,解密的時候,你再次和這個數做「異或」運算,就能夠恢復原來的那個數。這就是1種簡單的加密演算法,看似簡單,不過卻比較經常使用,由於,參與異或運算的值只有你自己知道。