C語言對檔案加上密碼

2021-07-25 06:18:46 字數 1268 閱讀 6900

博主剛剛學完c語言的基礎語法知識

一直想寫一些自己的程式

而博主又是乙個很懶的人

特別是對於記憶的東西很懶

我平時都把重要的東西放在乙個txt文件裡面

於是我便想對我的那個檔案進行加密碼

沒錯就是加密碼而不是加密,我開始對這個概念也是很模糊

1:首先我的想法是這樣的,我想把東西都儲存在乙個txt文件裡,然後和我用c語言寫的控制台程式放在一起,每次當我要看那個文件的時候就要執行那個程式去輸入密碼才能看見,不然直接是打不開的。

3:但我依舊不死心,然後我走了一些彎路,就想把內容先用二進位製錄進去再寫上密碼,我當時是認為二進位制檔案沒辦法直接開啟檢視應該就算安全了。不過我還是發現了一些問題。

4:我發現我對檔案的理解有誤,檔案只是磁碟的一堆資料而已,就算寫入的是二進位制,但依舊可以用一些工具讀出來,只是人為定製的編碼不同而已,在磁碟中都一樣,

於是我覺得這個寫不下去了。

5:最後我還是想加上密碼,我才突然想起可以寫成word文件進行加密碼或者用壓縮包加密碼。

雖然這個過程很無腦,但我還是收穫了許多

1:我對檔案的理解更深入了一些

2:我學會了去獲取整個檔案的長度及對其內容的讀寫

file* fp;

int len;

char* p;

fp = fopen("txt", "r"); // txt檔名

fseek(fp, 0l, seek_end); // 定位到檔案末尾

len = ftell(fp); // 得到檔案大小

p = (char *)malloc(len + 1); // 根據檔案大小動態分配記憶體空間

if (p == null)

fseek(fp, 0l, seek_set); // 定位到檔案開頭

fread(p, len, 1, fp); // 一次性讀取全部檔案內容

p[len] = '\0'; // 字串結束標誌

需要注意的是對在c語言中輸出的是ansi編碼格式的

而且函式ftell()是有一定的使用範圍的:

該函式對大於2

31-1檔案,即:2.1g以上的檔案操作時可能出錯。

3:我發現我對整體目標的把握並不夠,並沒有很好的了解很多東西,導致花費了很多時間

但我還是有許多的不懂,也許這篇部落格操之過急,我還是想知道為什麼那些加密軟體能為檔案上鎖,是的使用者不輸入密碼無法開啟檔案比如說word對檔案的加密和壓縮包的加密,我會更加的了解然後繼續學習

c語言對檔案的操作

檔案使用方式 含義 r 唯讀 開啟乙個文字檔案,只允許讀資料 w 只寫 開啟或建立乙個文字檔案,只允許寫資料 a 追加 開啟乙個文字檔案,並在檔案末尾寫資料 rb 唯讀 開啟乙個二進位制檔案,只允許讀資料 wb 只寫 開啟或建立乙個二進位制檔案,只允許寫資料 ab 追加 開啟乙個二進位制檔案,並在檔...

C語言對檔案的操作

從事軟體開發,經常要用到資料的讀寫,有時因資料量太小不太好用資料庫,這時運用c語言中豐富的檔案操作功能是不錯的乙個選擇.舉例說明常用的幾種形式 include include using namespace std struct node vectorhead 完成從檔案中讀取相關的資訊 int f...

C語言對檔案的操作

1.開啟檔案 file fp fp open const char filename,char mod 注意這裡的filename需要絕對路徑且分隔符用 表示如 c users desktop filename 名字是要加字尾的呦 使用檔案的方式 mod 檔案使用方式 含義如果檔案不存在 r 唯讀 ...