文件加密解密操作——源码开源
生活随笔
收集整理的這篇文章主要介紹了
文件加密解密操作——源码开源
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
/**********************************************
功能:文件加密解密
注意:(1)每進行一次文件函數(shù)操作,都要進行判斷是否會出錯;
(2)因為是以a+方式打開的文件,所以按理說a.c、b.c和c.c可以不用自己創(chuàng)建,讓程序來創(chuàng)建也行。
但是a.c源文件要自己先創(chuàng)建。因為a.c是加密源文件,系統(tǒng)自動創(chuàng)建的話是空白的;
(3)大家可能有個疑問,循環(huán)取字符是怎么實現(xiàn)自動取下一個的?解答就是:有一個文件位置指針。
************************************************/
#include <stdio.h>/****************************************************
函數(shù)聲明區(qū)
*****************************************************/
int En_Secret(char *oriPath,char *enPath,char passwd);/****************************************************
宏定義區(qū)
*****************************************************/
#define ORI_FILE_FAIL -1
#define EN_FILE_FAIL -2
#define PUT_CHAR_FAIL -3
#define CORRECT 0/****************************************************
函數(shù)名:main
功 能:主函數(shù)
返回值:int,一種正確返回類型
*****************************************************/
int main()
{En_Secret("./a.c","./b.c",0xa5); //加密操作En_Secret("./b.c","./c.c",0xa5); //解密操作return CORRECT;
}/****************************************************
函數(shù)名:En_secret
功 能:加密解密函數(shù)
參 數(shù):oriPath是源文件路徑地址,enPath是加密/解密后的源文件路徑地址,passwd是異或密碼
返回值:int,三種返回錯誤類型,一種返回正確類型
****************************************************/
int En_Secret(char *oriPath,char *enPath,char passwd)
{//定義變量FILE *oriFd,*encFd; //用來作為函數(shù)句柄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) //只要取字符不出錯,就進行循環(huán){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;
}
運行結(jié)果如下:
b.c是a.c的加密文件,b.c是亂碼,說明加密成功;
a.c與c.c的文件內(nèi)容一致,說明解密成功。
——兄弟們,如果覺得有幫助,記得點個贊,加個訂閱!
總結(jié)
以上是生活随笔為你收集整理的文件加密解密操作——源码开源的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MIT协议原文
- 下一篇: 货物配送问题的matlab,遗传算法ma