XOR encryption looks realy funny (: -> encrypt.c
#include <stdio.h>usage: ./ecrypt source_file encrypted_file crypt_key
#include <string.h>
#include <errno.h>
#include <fcntl.h>
#define crpt(byte,key) (byte^key)
int
main (int argc, char *argv[])
{
int f1, f2, n;
char unbuf;
if (argc < 4)
error (-1, EINVAL, "Error, argument fault",
argv[0]);
if ((strlen (argv[3])) <= 2)
error (-1, EINVAL, "Error, encyrpt key is "
"too short (less then 3 characters)");
if ((f1 = open (argv[1], O_RDONLY)) == -1)
err (-1, "Error, while trying to open "
"file %s for read", argv[1]);
if ((f2 = creat (argv[2], 0644)) == -1)
err (-1, "Error, while trying to create/open "
"file %s for write", argv[2]);
while ((n = read (f1, &unbuf, 1)) > 0)
{
char *key = argv[3];
if ((key+1) == '\0')
key = argv[3];
unbuf = crpt(unbuf, *key);
if ((write (f2, &unbuf, 1)) == -1)
err(-1, "Error while trying to write "
"in file %s", argv[2]);
key++;
}
return 0;
}
This little program will take the source_file, encrypt it, and write
the result in the encrypted_file using the crypt_key
You can decrypt the encrypted_file using the same crypt_key.. like
./encrypt encrypted_file decrypted_file same_crypt_key
this is funny! :-)