c語言加密儲存,c語言數據加密程序

本文目錄一覽:

如何用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語言 讀取完文件加密後如何儲存並修改呢 求助

大概的改了一下,有什麼問題,再問吧

#include stdio.h

#include stdlib.h

#include math.h

#include string.h

#include conio.h  /*建議加入此頭文件,以利於getch()的調用*/

char buffer[100] = {0};

static int c = 1;

int get_text()

{

int i = 0;

char file_name[100] = “a.txt”;

FILE *fp;

if ((fp = fopen(file_name, “r”)) == NULL)

{

fprintf(stderr, “can’t find file %s!\n”, file_name);

return -1;   

}

 

while(i  5)

{

while(1)

{

char ch = fgetc(fp);  

if (ch != EOF)

{

buffer[i++] = ch;

}

else

{

break;   // 到達文件結尾了

}

}

buffer[i] = ‘\0’;  

fclose(fp); 

//printf(“nihao \n”);

printf(“%s\n”, buffer); // 輸出結果 

return 0;

}

}

int set_psw(char *psw)

{

int i = 0;

char file_name[100] = “b.txt”;

FILE *fp;

if ((fp = fopen(file_name, “w+”)) == NULL)

{

fprintf(stderr, “can’t find file %s!\n”, file_name);

return -1;   

}

fputs(psw, fp);

fclose(fp); 

return 0;

}

int jiami()

{

char a[256];

int i;

//printf(“請輸入要加密的數字\n”);

//scanf(“%s”,a);

if (get_text() != 0)

{

return -1; 

for(i = 0; i = strlen(buffer); i++)

{

a[i] = buffer[i];

}

for(i = 0 ; i  strlen(a); i++)

{

a[i] = a[i] + c;

}

if (set_psw(a) != 0)

{

return -1; 

}

printf(“加密後的密碼為: %s。已保存在b.txt文件中。\n”, a);

printf(“***************\n”);

printf(“***************\n”);

return 0;

}

int jiemi()

{

char b[256];

int i; 

scanf(“%s”, b);

for(i = 0 ; i  strlen(b); i++)

{

b[i] = b[i] – c;

}

printf(“解密後的密碼為:%s\n”, b);  

printf(“***************\n”);

printf(“***************\n”);

printf(“***************\n”);

return 0;

}

void mima(int c)

{

printf(“設置成功\n”);

printf(“********\n”);

printf(“********\n”);

printf(“********\n”);

}

int main()

{

int a;

while (1)

{

printf(“*************************  0   退出程序     *************************\n”);

printf(“*************************  1   進行加密     *************************\n”);

printf(“*************************  2   進行解密     *************************\n”);

printf(“*************************  3   設置密鑰     *************************\n”);

printf(“你要進行的操作是\n”);

scanf(“%d”, a);

switch(a)

{

case 0:

exit(0);

break; // 這裡的break是匹配switch的 

case 1:

printf(“請輸入要加密的數字\n”);

jiami();

continue; // 這裡的continue是匹配while(1)的 

case 2:

printf(“請輸入要解密的數字\n”);

jiemi();

continue; // 這裡的continue是匹配while(1)的 

case 3:

printf(“請輸入四位數密鑰\n”);

scanf(“%d”, c);

mima(c);

continue; // 這裡的continue是匹配while(1)的 

}

}

}

C語言文件加密

#includestdio.h

int main()

{char ch;

 FILE *fp1,*fp2;

 fp1=fopen(“d:\\file1.txt”,”r”);

 fp2=fopen(“d:\\file2.txt”,”w”);

 printf(“加密後的內容:\n”);

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

 {ch^=0x6a; putchar(ch); fputc(ch,fp2);}

 fclose(fp1);

 fclose(fp2);

 printf(“\n解密後的內容:\n”);

 fp2=fopen(“d:\\file2.txt”,”r”);

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

 {ch^=0x6a; putchar(ch);} 

 return 0; 

}

原創文章,作者:CIAB,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/147460.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
CIAB的頭像CIAB
上一篇 2024-11-01 14:09
下一篇 2024-11-01 14:09

相關推薦

  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • Python讀取CSV數據畫散點圖

    本文將從以下方面詳細闡述Python讀取CSV文件並畫出散點圖的方法: 一、CSV文件介紹 CSV(Comma-Separated Values)即逗號分隔值,是一種存儲表格數據的…

    編程 2025-04-29
  • Python程序文件的拓展

    Python是一門功能豐富、易於學習、可讀性高的編程語言。Python程序文件通常以.py為文件拓展名,被廣泛應用於各種領域,包括Web開發、機器學習、科學計算等。為了更好地發揮P…

    編程 2025-04-29
  • Python中讀入csv文件數據的方法用法介紹

    csv是一種常見的數據格式,通常用於存儲小型數據集。Python作為一種廣泛流行的編程語言,內置了許多操作csv文件的庫。本文將從多個方面詳細介紹Python讀入csv文件的方法。…

    編程 2025-04-29
  • AES加密解密演算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密演算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES演算法,並對實現過程進…

    編程 2025-04-29
  • 如何用Python統計列表中各數據的方差和標準差

    本文將從多個方面闡述如何使用Python統計列表中各數據的方差和標準差, 並給出詳細的代碼示例。 一、什麼是方差和標準差 方差是衡量數據變異程度的統計指標,它是每個數據值和該數據值…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演著非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python購物車程序

    Python購物車程序是一款基於Python編程語言開發的程序,可以實現購物車的相關功能,包括商品的添加、購買、刪除、統計等。 一、添加商品 添加商品是購物車程序的基礎功能之一,用…

    編程 2025-04-29
  • Python多線程讀取數據

    本文將詳細介紹多線程讀取數據在Python中的實現方法以及相關知識點。 一、線程和多線程 線程是操作系統調度的最小單位。單線程程序只有一個線程,按照程序從上到下的順序逐行執行。而多…

    編程 2025-04-29

發表回復

登錄後才能評論