昨天有個同事問我linux下有沒有什麼簡單的加密檔案的開源元件,找了一下沒找到,索性自己寫乙個,反正要求不高,能隱藏ascii碼的明文就ok了。
純屬娛樂:懶得文字描述如何加密的,一切看**,簡簡單單~
#include #include #include #include #include #include #include #include #include #define block 4*1024 // 4k
#define magic 0xff88aa99
#define debug 1
static int error=0; /* flag for error */
struct file_head
;void usage(char *name)
int my_encrypt(char *src, char *dest);
int my_decrypt(char *src, char *dest);
unsigned char create_secret()
int main(int argc, char **argv)
switch(*argv[1])
if(error)
return 0;
}int my_encrypt(char *src, char *dest)
; int ret_r=0,i,ret_w=0;
struct file_head head;
int rfd=-1,wfd=-1;
if((rfd = open(src,o_rdonly))<0)
if((wfd = open(dest,o_wronly | o_creat | o_excl , 0666)) <0 )
// fill the file head
head.magic = magic;
head.separate = create_secret()%88;
head.secret = create_secret();
if((ret_w=write(wfd, &head, sizeof(struct file_head))) != sizeof(struct file_head))
#ifdef debug
printf("head: magic=%x separate=%d secret=%x\n",head.magic, head.separate, head.secret);
#endif
// end
while((ret_r=read(rfd,buf,block)) > 0 )
if(wfd>0)
return 0;
}int my_decrypt(char *src, char *dest)
; int ret_r=0,i,ret_w=0;
struct file_head head;
int rfd=-1,wfd=-1;
if((rfd = open(src,o_rdonly))<0)
if((wfd = open(dest,o_wronly | o_creat | o_excl , 0666)) <0 )
if((ret_r=read(rfd, &head, sizeof(struct file_head))) != sizeof(struct file_head))
#ifdef debug
printf("head: magic=%x separate=%d secret=%x\n",head.magic, head.separate, head.secret);
#endif
if(head.magic!=magic|| head.separate <0 || head.separate >88 || head.secret<0)
while((ret_r=read(rfd,buf,block)) > 0 )
if(wfd>0)
return 0;
}
利用C 實現簡單的檔案加密
示例 中利用 異或操作 實現對檔案加密。首先,建立兩個 txt檔案,分別將其命名為 原檔案.txt key.text 原檔案.txt 為需要加密的檔案,key.text 為金鑰檔案,執行 後 原檔案.txt 被加密,再一次執行 原檔案.txt 會被解密。示例 include include incl...
C語言檔案的簡單儲存
最近在複習c語言,遂將以前的筆記整理,以供以後翻閱。這是實現檔案的讀入和檔案的寫出。基本步驟是 1.先判斷檔案是否可以開啟,2.進行檔案的讀入或者寫出,3.讀寫完畢,關閉檔案。a 如果沒有檔案,則會建立檔案,如果檔案存在,則會開啟檔案後在檔案末尾新增 w 如果沒有檔案,建立檔案,如果有檔案,則是將原...
C語言實現檔案的加密解密
閒來無事,隨手翻了翻桌面上的c語言教程,意外發現了這段 就上機玩弄了一番,感覺有點實用性,寫了點注釋分享給大家。若有理解不到位的地方,還請大家批評指正 include includeint main int argc,char ar 以讀二進位制檔案的方式開啟指定檔案 if fpr fopen ar...