Principle: XOR or operation
Encryption:
#include <stdio.h>#include<stdlib.h>#include<string.h>#defineKEY ' @ 'intMainintargcChar*argv[]) {FILE*FP; FILE*coded; Charcodedname[ +]; Charch; if(ARGC <2) {printf ("param error!\n"); Exit (1); } if(fp = fopen (argv[1],"RB")) ==NULL) {printf ("error when open file%s.\n", argv[1]); Exit (1); } strcpy (Codedname, argv[1]); strcat (Codedname,". Coded"); if(coded = fopen (Codedname,"a+b")) ==NULL) {printf ("error when open file%s.\n", Codedname); Exit (1); } while(ch = getc (fp))! =EOF) { Chartemp = ch^KEY; PUTC (temp, coded); } if(fclose (fp)! =0) {printf ("error when close file%s.\n", argv[1]); Exit (1); } if(Fclose (coded)! =0) {printf ("error when close file%s.\n", Codedname); } return 0;}
Decrypt:
#include <stdio.h>#include<stdlib.h>#include<string.h>intMainintargcChar*argv[]) {FILE*FP; FILE*Decoded; Chardecodedname[ +]; Charch; Charkey; Const Char*dot ="."; if(ARGC <3) {printf ("param error!\n"); Exit (1); } if(fp = fopen (argv[1],"RB")) ==NULL) {printf ("error when open file%s.\n", argv[1]); Exit (1); } strcpy (Decodedname, strtok (argv[1], dot)); strcat (Decodedname,"."); strcat (Decodedname, strtok (NULL, Dot)); Key= argv[2][0]; if(decoded = fopen (Decodedname,"a+b")) ==NULL) {printf ("error when open file%s.\n", Decodedname); Exit (1); } while(ch = getc (fp))! =EOF) { Chartemp = ch^key; PUTC (temp, decoded); } if(fclose (fp)! =0) {printf ("error when close file%s.\n", argv[1]); Exit (1); } if(Fclose (decoded)! =0) {printf ("error when close file%s.\n", Decodedname); } return 0;}
C Language for Simple file encryption