DaniWeb IT Discussion Community

DaniWeb IT Discussion Community (http://www.daniweb.com/forums/index.php)
-   C++ (http://www.daniweb.com/forums/forum8.html)
-   -   Encryptor (http://www.daniweb.com/forums/thread70744.html)

hellokitkat Feb 22nd, 2007 12:10 pm
Encryptor
 
Hello to all programmers:
I have been working on the following program but I am encountering some difficulties any help whatsoever would be greatly appreciated.

My instructions are:
Write a c++ program,
1. Prompts the user for a choice of encrypt or decrypt, prompts for the input and output filenames
2. has a function for encryption
a. generates a random key
b. stores the key in the encrypted file
c. encrypts the data from the input file by performing xor of the key with every byte from the input file
3. has a function for decryption
a. reads the key from the encrypted file
b. decrypts the data from the input file by performing xor of the key wit every byte from the file
4. performs the encryption or decryption based on the user's choice.

so far I have ( Not quite sure what to do next):

#include<iostream>
#include<string>
#include<ctime>
#include<cstdlib>
#include<fstream>
usingnamespace std;
void encrypt();
void decrypt();
char option;
// char inFile;
char outFile;
int decryptencrypt;
void main()
{
srand((unsigned)time(NULL));
encrypt();
decrypt();
cout << "Enter 1 to decrypt" << endl;
cout << "Enter 2 to encrypt" << endl;
cin >> decryptencrypt;
cout << "Enter the input filename" << endl;
cin >> option;
// cin.get(inFile);
string inFile;
getline(cin, inFile);
cout << "Enter the output filename" << endl;
cin >> outFile;
}
void encrypt(){
char t
}
void decrypt(){
}

iamthwee Feb 22nd, 2007 4:21 pm
Re: Encryptor
 
You ain't done much.

Specifically which part are you struggling with?

John A Feb 22nd, 2007 7:42 pm
Re: Encryptor
 
Why do you ask for both the infile and the outfile? You should only ask the question appropriate to what the user has selected (and perhaps perform some error checking). A switch statement might suit you best:
switch (decryptencrypt) {
    case 1:
        // ask for infile, call decrypt(), blah blah
        break;
    case 2:
        // ask for outfile etc
        break;

    default:
        // invalid choice
}
And don't forget to allow a string parameter for encrypt()/decrypt(), or else it won't know what file to open!

But agreed with iamthwee, you haven't written much. What don't you know about writing an encrpytion program?

hellokitkat Feb 23rd, 2007 4:16 am
Re: Encryptor
 
I am uncertain of what I should ask for the case. I used .get to read the input and output file but it is not working correctly. This program is giving me a headacher!

ithelp Feb 23rd, 2007 9:56 am
Re: Encryptor
 
What is this program supposed to output? you have not coded encrypt and decrypt yet
Simplest encrypt algorithm would be xor each of the byte of the input with a magic number, where exactly are you stuck ?

Tauren Feb 26th, 2007 10:39 pm
Re: Encryptor
 
You might wanna use Arrays.

John A Feb 26th, 2007 11:00 pm
Re: Encryptor
 
Quote:

Originally Posted by Tauren (Post 321034)
You might wanna use Arrays.

Char arrays would be kind of silly when you could simply use a C++ string to hold the data. You then directly reference each character using the string's [] overloaded operators, and simply perform the XOR with the key. To decrypt it, simply use the XOR with the key again, and the character will be readable.

Not to say that it's a very secure method of encryption, but it will suffice for a homework assignment like this one...


All times are GMT -4. The time now is 9:34 pm.

Forum system based on vBulletin Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
©2003 - 2009 DaniWeb® LLC