|
|
Subject:
simple C program
Category: Computers > Programming Asked by: phelsva-ga List Price: $16.00 |
Posted:
18 Mar 2003 21:08 PST
Expires: 17 Apr 2003 22:08 PDT Question ID: 178038 |
Write a program that utilizes C pointers and C-style strings to perform text-based encryption/decryption I work for AP systems a new company in New orleans, I have a big project due in a week, but I have no help, I have to write 4 different programs in 3 diff languages, and make these programs very easy to explain to people who are just C begginers. I have 2 very big projects to do and I'm afraid I don't have time for the smaller ones, the truth of the matter is, I'm very strong in Java but very week in C.Anyway, I need help in writing this program in c, I've already began the program, and would be most grateful if someone can complete it for me, Ap systems may even decide to contact you personally for future assignments and Big, Big bucks. I have written a code that demonstrates an encryption algorithm using the C-standard random-number generator. Note the presence of encrypt /decrypt function (called vault) and the key variable. I will like you to look over the program and make corrections if needed. I will like you to change the rand function into another 1:1 and onto isomorphism. I NEED THIS PROGRAM BY TUESDAY MARCH 25 2003. The main help I need is as follows. Please obtain a copy of the "Magna Carta of 1215" ( from the library or the internet or anywhere) enter the text document into an Ascii text file. Then write a C program to read in the text file, encrypt file using the encryption routine and print out the encrypted contents.Then read the encrypted file back into your program, decrypt it, and print the decrypted contents. # include <stdio.h> # include <stdlib.h> # include <stddef.h> # include <math.h> # include <string.h> # define SUCCESS 0 # define FAILURE -1 int vault ( char *, char , int); int vault ( char *textstring, char mode, int key); { char *end =NULL; int i=0, length=0, returncode=SUCCESS; length =strlen(textstring); end= textstring + length; if(mode = = E) printf(Encrypting string contents.\n); else if(mode = = D) printf (Decrpting string contents. \n); else { printf( invalid encryption mode value: use D=decrypt, E=encrypt.\n); printf( Function is returning with no action. \n); returncode=FAILURE; } if (mode= = E || mode= = D) { srand(key); while (tectstring < end) { i= rand( ); if mode= = E ) *textstring = *textstring + i; else *textstring = *textstring - i; *textstring+ +; } } return returncode; } |
|
Subject:
Re: simple C program
Answered By: hammer-ga on 19 Mar 2003 07:11 PST Rated: |
/* CRYPT - encrypts/decrypts a file using XOR Outputs results to specified file Assumes Win32 platform Usage: crypt infile outfile keystring Arguments: infile - file to encrypt/decrypt outfile - file where result will be written keystring - encryption key. should be a string of random characters with no spaces Example: crypt infile.txt outfile.txt jjue7kfkkd88dek30 crypt outfile.txt outfile2.txt jjue7kfkkd88dek30 After running both the above commands, outfile2.txt should be identical to infile.txt. Note that both commands use the same keystring. */ #include <stdio.h> #include <io.h> #include <fcntl.h> #include <sys\stat.h> void main(int argc, void **argv) { void vault(char *, char *, int); char *ptr; int fd; int fd2; int f_len; if(argc > 1) { if(argc > 2) { if(argc > 3) { if(access(argv[1], 0) == 0) { fd = open(argv[1], O_RDONLY | O_BINARY); if(fd > -1) { f_len = filelength(fd); if(f_len > 0) { ptr = (char *)malloc(f_len + 1); if(ptr != NULL) { if(read(fd, ptr, f_len) == f_len) { *(ptr + f_len) = '\0'; vault(ptr, argv[3], f_len); fd2 = open(argv[2], O_WRONLY | O_CREAT | O_BINARY, _S_IREAD | _S_IWRITE); if(fd2 > -1) { write(fd2, ptr, f_len); close(fd2); } else { fprintf(stderr, "Error: Output file failed to open.\n"); } } else { fprintf(stderr, "Error: Input file failed to read.\n"); } free(ptr); } else { fprintf(stderr, "Error: Failed to malloc ptr.\n"); } } else { fprintf(stderr, "Error: Input file has no length.\n"); } close(fd); } else { fprintf(stderr, "Error: Input file failed to open.\n"); } } else { fprintf(stderr, "Error: Input file does not exist.\n"); } } else { fprintf(stderr, "Error: Key string must be specified.\n"); } } else { fprintf(stderr, "Error: Output filename must be specified.\n"); } } else { fprintf(stderr, "Error: Filename to encrypt/decrypt must be specified.\n"); } } void vault(char *val, char *key, int val_len) { int r; char *cp_val; char *cp_key; char result; r = 0; if((val != NULL) && (key != NULL)) { cp_val = val; cp_key = key; while(r < val_len) { result = *cp_val ^ *cp_key; *cp_val = result; cp_val++; cp_key++; if(*cp_key == '\0') cp_key = key; r++; } } } /* I was able to successfully encrypt and decrypt the Magna Carta using this program. Good luck with your project. - Hammer */ | |
| |
| |
|
phelsva-ga
rated this answer:
Good job |
|
Subject:
Re: simple C program
From: karlon-ga on 19 Mar 2003 00:08 PST |
Take a look at http://www.cox-internet.com/ksetal/crypt.c and tell me what you think. example of use: linux$ gcc -o crypt crypt.c linux$ ./crypt Enter input filename: magnacart.txt Enter output filename: magnacart.cry Enter passphrase: GoogleAnswers Enter E for encrypt, D for decrypt: E Encrypting string contents. Encrypting string contents. Encrypting string contents. Encrypting string contents. Encrypting string contents. Encrypting string contents. Encrypting string contents. Encrypting string contents. linux$ ./crypt Enter input filename: magnacart.cry Enter output filename: magnacart.clear Enter passphrase: GoogleAnswers Enter E for encrypt, D for decrypt: D Decrpting string contents. Decrpting string contents. Decrpting string contents. Decrpting string contents. Decrpting string contents. Decrpting string contents. Decrpting string contents. Decrpting string contents. # now, make sure they decrypted text is the same as the original linux$ sum magnacart.txt magnacart.clear 31287 2 magnacart.txt 31287 2 magnacart.clear |
Subject:
Re: simple C program
From: phelsva-ga on 28 Mar 2003 07:05 PST |
were you able to succesfully encrypt and decrypt the magna carta |
Subject:
Re: simple C program
From: bmcompany-ga on 07 Feb 2004 12:58 PST |
Im really sorry if i'm sticking my nose in but why, when you offered such a low $ amount for such a specialised job, did you only rate 4/5 when (as far as i can see) it did exactly what you asked for? |
If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you. |
Search Google Answers for |
Google Home - Answers FAQ - Terms of Service - Privacy Policy |