Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon. Entire thread

FrozenVoid wrote a C program!

Name: Anonymous 2009-06-18 1:39

Simple XOR encryptor in C
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//Syntax : Xorw inputfile outputfile Number_of_iterations=(encrypt +num,decrypt -num);
//example: 'xorw input.txt output.dat 734',then 'xorw output.dat input.txt -734' to get file back
//numbers above 10k result in much slower encryption/decryption speed.
int main(int argc, char *argv[]){int level;long int filesize;char mode;//1back0forw
if(!argv[3]){puts("No level specified\n");return 1;}else{ level=atoi(argv[3]);if(!level){puts("Bad level\n");return 1;}};
mode=level<0?1:0;level=abs(level);
FILE *output= fopen(argv[2], "wb" );if(!output){puts("File write error\n");return 1;}
FILE *input = fopen( argv[1], "rb" );if(!input){puts("No input file exists\n");return 1;};
fseek(input,0,SEEK_END);filesize=ftell(input);rewind(input);char *inpbuf=malloc(filesize);
fread(inpbuf,1,filesize,input);fclose(input);
unsigned char prevbyte;long int pos;unsigned char tmpbyte;
if(mode){for(;level;level--){
prevbyte=0x00;for(pos=0;pos<filesize;pos++){tmpbyte=inpbuf[pos];inpbuf[pos]^=prevbyte;prevbyte=tmpbyte;}
}}else{for(;level;level--){
prevbyte=0x00;for(pos=0;pos<filesize;pos++){inpbuf[pos]^=prevbyte;prevbyte=inpbuf[pos];}
}};fwrite(inpbuf,1,filesize,output);free(inpbuf);fclose( output );return 0;}
Posted by FrozenVoid at 18:48 0 comments Links to this post
Labels: encryption, xor, xorw.c

Name: Anonymous 2009-06-18 5:35

Thanks to astyle, here it is a correct indentation of the code

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
//Syntax : Xorw inputfile outputfile Number_of_iterations=(encrypt +num,decrypt -num);
//example: 'xorw input.txt output.dat 734',then 'xorw output.dat input.txt -734' to get file back
//numbers above 10k result in much slower encryption/decryption speed.
int main(int argc, char *argv[])
{
    int level;
    long int filesize;
    char mode;//1back0forw
    if (!argv[3]) {
        puts("No level specified\n");
        return 1;
    } else {
        level=atoi(argv[3]);
        if (!level) {
            puts("Bad level\n");
            return 1;
        }
    };
    mode=level<0?1:0;
    level=abs(level);
    FILE *output= fopen(argv[2], "wb" );
    if (!output) {
        puts("File write error\n");
        return 1;
    }
    FILE *input = fopen( argv[1], "rb" );
    if (!input) {
        puts("No input file exists\n");
        return 1;
    };
    fseek(input,0,SEEK_END);
    filesize=ftell(input);
    rewind(input);
    char *inpbuf=malloc(filesize);
    fread(inpbuf,1,filesize,input);
    fclose(input);
    unsigned char prevbyte;
    long int pos;
    unsigned char tmpbyte;
    if (mode) {
        for (;level;level--) {
            prevbyte=0x00;
            for (pos=0;pos<filesize;pos++) {
                tmpbyte=inpbuf[pos];
                inpbuf[pos]^=prevbyte;
                prevbyte=tmpbyte;
            }
        }
    } else {
        for (;level;level--) {
            prevbyte=0x00;
            for (pos=0;pos<filesize;pos++) {
                inpbuf[pos]^=prevbyte;
                prevbyte=inpbuf[pos];
            }
        }
    }
    ;
    fwrite(inpbuf,1,filesize,output);
    free(inpbuf);
    fclose( output );
    return 0;
}

Newer Posts
Don't change these.
Name: Email:
Entire Thread Thread List