日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

文件加密解密操作——源码开源

發布時間:2024/3/26 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 文件加密解密操作——源码开源 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
/********************************************** 功能:文件加密解密 注意:(1)每進行一次文件函數操作,都要進行判斷是否會出錯; (2)因為是以a+方式打開的文件,所以按理說a.c、b.c和c.c可以不用自己創建,讓程序來創建也行。 但是a.c源文件要自己先創建。因為a.c是加密源文件,系統自動創建的話是空白的; (3)大家可能有個疑問,循環取字符是怎么實現自動取下一個的?解答就是:有一個文件位置指針。 ************************************************/ #include <stdio.h>/**************************************************** 函數聲明區 *****************************************************/ int En_Secret(char *oriPath,char *enPath,char passwd);/**************************************************** 宏定義區 *****************************************************/ #define ORI_FILE_FAIL -1 #define EN_FILE_FAIL -2 #define PUT_CHAR_FAIL -3 #define CORRECT 0/**************************************************** 函數名:main 功 能:主函數 返回值:int,一種正確返回類型 *****************************************************/ int main() {En_Secret("./a.c","./b.c",0xa5); //加密操作En_Secret("./b.c","./c.c",0xa5); //解密操作return CORRECT; }/**************************************************** 函數名:En_secret 功 能:加密解密函數 參 數:oriPath是源文件路徑地址,enPath是加密/解密后的源文件路徑地址,passwd是異或密碼 返回值:int,三種返回錯誤類型,一種返回正確類型 ****************************************************/ int En_Secret(char *oriPath,char *enPath,char passwd) {//定義變量FILE *oriFd,*encFd; //用來作為函數句柄int oriChar; //用來存儲取出來的字符char enChar; //用來存儲與密碼異或后的字符//打開文件oriFd = fopen(oriPath,"a+"); //以a+方式打開文件if(oriFd == NULL){printf("origin file open failed!\n");return ORI_FILE_FAIL; //返回錯誤代碼號,見宏定義}encFd = fopen(enPath,"a+"); //以a+方式打開文件if(encFd == NULL){printf("en file open failed!\n");return EN_FILE_FAIL; //返回錯誤代碼號,見宏定義}//取出字符,與密碼異或后寫入新文件oriChar = fgetc(oriFd); //取出字符while(oriChar != EOF) //只要取字符不出錯,就進行循環{enChar = (char)oriChar ^ passwd; //異或,可以是加密,也可以是解密if(fputc(enChar,encFd) == EOF) //把異或后的字符寫入新文件,并判斷寫入字符是否出錯{printf("put char failed!\n"); return PUT_CHAR_FAIL; //返回錯誤代碼號,見宏定義}oriChar = fgetc(oriFd); //取出字符} fclose(oriFd);fclose(encFd);return CORRECT; }

運行結果如下:

b.c是a.c的加密文件,b.c是亂碼,說明加密成功;
a.c與c.c的文件內容一致,說明解密成功。

——兄弟們,如果覺得有幫助,記得點個贊,加個訂閱!

總結

以上是生活随笔為你收集整理的文件加密解密操作——源码开源的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。