User Name Password Register
DaniWeb IT Discussion Community
All
What is DaniWeb IT Discussion Community?
You're currently browsing the C++ section within the Software Development category of DaniWeb, a massive community of 429,968 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 2,651 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our C++ advertiser: Programming Forums
Views: 921 | Replies: 2
Reply
Join Date: Feb 2007
Posts: 3
Reputation: hellokitkat is an unknown quantity at this point 
Rep Power: 0
Solved Threads: 0
hellokitkat hellokitkat is offline Offline
Newbie Poster

Help help with encryption! asap

  #1  
Feb 25th, 2007
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 difficulty is that when I run the program, it does not perform the encryption nor decryption on the file I type in. Is something wrong with my functions? I can't figure the problem!

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.

#include<iostream>
#include<string>
#include<ctime>
#include<cstdlib>
#include<fstream>
usingnamespace std;
void encrypt(char inname[80], char outname[80]);
void decrypt(char inname[80], char outname[80]);
int decryptencrypt;
char inname[80], outname[80];
void main()
{
srand((unsigned)time(NULL));

cout << "Enter 1 to decrypt" << endl;
cout << "Enter 2 to encrypt" << endl;
cin >> decryptencrypt;
cout << "Enter the input filename" << endl;
cin >> inname;
cout << "Enter the output filename" << endl;
cin >> outname;
if(decryptencrypt == 1)
{
decrypt( inname, outname);
}
else if(decryptencrypt == 2)
encrypt( inname, outname);

}

void encrypt(char inname[80], char outname[80]){
ifstream in;
ofstream out;
in.open(inname);
out.open(outname);
char key = rand() % 255;
out << key;
char c;
in.get(c);
while(in != 0)
{
out << (c ^ key);
in.get(c);

}
return;
}

void decrypt(char inname[80], char outname[80]){
ifstream in;
ofstream out;
in.open(inname);
out.open(outname);
char key;
in.get(key); // Read the key out of the encrypted file

char c;
in.get(c);
while(in != 0)
{
out << (c ^ key); // Do XOR to restore it to its original values
in.get(c);
}
return;
}
AddThis Social Bookmark Button
Reply With Quote  
Join Date: Aug 2005
Posts: 4,784
Reputation: iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light iamthwee is a glorious beacon of light 
Rep Power: 17
Solved Threads: 320
iamthwee's Avatar
iamthwee iamthwee is offline Offline
Industrious Poster

Re: help with encryption! asap

  #2  
Feb 25th, 2007
You need to start filling your program with a load of couts, so you can find out where it's going wrong.


Just as a side note, you may need to read and write in binary mode, we'll get to that later though.

In the mean time find out if each part is doing what it should be.
I'm not a programmer. My attitude starts with ignorance, holds steady at conversation, and ends with a trip to the hospital. Get used to it.
Reply With Quote  
Join Date: Dec 2005
Posts: 3,670
Reputation: Salem has much to be proud of Salem has much to be proud of Salem has much to be proud of Salem has much to be proud of Salem has much to be proud of Salem has much to be proud of Salem has much to be proud of Salem has much to be proud of Salem has much to be proud of 
Rep Power: 22
Solved Threads: 420
Colleague
Salem's Avatar
Salem Salem is offline Offline
void main'ers are DOOMed

Re: help with encryption! asap

  #3  
Feb 25th, 2007
> usingnamespace std;
Whatever crappy code colouring tool you're using, stop using it and use the board code tags.
Few people are going to be bothered to trawl through unindented code which isn't even compilable, and has been corrupted in transmission.
http://www.daniweb.com/techtalkforum...cement8-3.html

> help with encryption! asap
Your urgency isn't our problem
http://www.catb.org/~esr/faqs/smart-...ns.html#urgent

As for the rest of the problem, start with a program that simply copies one file to another without any changes. If you can't manage that, then you're wasting time trying to do encryption.

Oh, and main() really does return an int. Use it or be doomed.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
Do not PM me for help; You'll be ignored, or told to learn to read.
Do not ask me if I'm muslim - I'm not. Nor do I care about yours or anyone else's mysticism. Religion is a matrix, take the RED PILL.
Reply With Quote  
Reply

Only community members can participate in forum threads. You must register or log in to contribute.

DaniWeb C++ Marketplace
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)

 

Thread Tools Display Modes

Similar Threads
Other Threads in the C++ Forum

All times are GMT -4. The time now is 11:46 pm.
Forum system based on vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
©2003 - 2008 DaniWeb® LLC