943,662 Members | Top Members by Rank

Ad:
  • C++ Discussion Thread
  • Unsolved
  • Views: 889
  • C++ RSS
Feb 19th, 2009
0

Skip BMP header for DES encryption

Expand Post »
I am writing an implementation of a DES encryption with a 64 bit plaintext, taken from the pixel information in a BMP file. So I want to skip the header which is 54 bytes, but I am not sure how to do this. This will not be a dynamic project, in the sense that I will always use the same BMP file (as I am producing both a CBC and EBC mode BMP file at the program finish)
If you have no idea what I am talking about, check out this link.
http://www.giac.org/resources/whitep...ography/62.php

So I would like to open the bmp file, skip the first 54 bytes, then consecutively read 8 byte blocks and encrypt them. I just don't know very much about using files in C++.
Reputation Points: 10
Solved Threads: 0
Junior Poster in Training
weasel7711 is offline Offline
82 posts
since Oct 2007
Feb 19th, 2009
1

Re: Skip BMP header for DES encryption

C++ Syntax (Toggle Plain Text)
  1. char buffer[100];
  2. ifstream f;
  3.  
  4. f.open ("pic.bmp", ios::binary);
  5.  
  6. // skip header
  7. f.read (buffer, 54);
  8.  
  9. // read 8 bytes into buffer
  10. f.read (buffer, 8);
Reputation Points: 163
Solved Threads: 91
Posting Pro in Training
nucleon is offline Offline
476 posts
since Oct 2008
Feb 19th, 2009
0

Re: Skip BMP header for DES encryption

Thank you. I do have one question though. What does the ios::binary do, does that translate the hex digits into binary when read into the buffer?
Reputation Points: 10
Solved Threads: 0
Junior Poster in Training
weasel7711 is offline Offline
82 posts
since Oct 2007
Feb 19th, 2009
0

Re: Skip BMP header for DES encryption

No. Binary mode simply ensures that all file bytes are put into the buffer as is, with no translation whatsoever. Text mode may, depending on the operating system, translate various bytes. For instance, in windows the usual end of line marker is ascii-13 followed by ascii-10. But when read in text mode, all your program sees is the ascii-10.
Reputation Points: 163
Solved Threads: 91
Posting Pro in Training
nucleon is offline Offline
476 posts
since Oct 2008
Feb 20th, 2009
0

Re: Skip BMP header for DES encryption

What I am planning on doing is bitwise operation on the 8 bytes read in from the file. I was thinking of converting the 8 bytes to an integer value, then I remembered ints in windows are 4 bytes. Is a long 8 bytes? And is there a way to convert the 8 bytes read in to the buffer into a long value I can manipulate?
Reputation Points: 10
Solved Threads: 0
Junior Poster in Training
weasel7711 is offline Offline
82 posts
since Oct 2007
Feb 20th, 2009
0

Re: Skip BMP header for DES encryption

Why would you want to convert it to something of you can just manipulate it one byte at a time?
Moderator
Featured Poster
Reputation Points: 4142
Solved Threads: 394
Industrious Poster
Nick Evan is offline Offline
4,132 posts
since Oct 2006
Feb 20th, 2009
0

Re: Skip BMP header for DES encryption

How do I manipulate the bytes if they are stored as chars?
Reputation Points: 10
Solved Threads: 0
Junior Poster in Training
weasel7711 is offline Offline
82 posts
since Oct 2007
Feb 20th, 2009
0

Re: Skip BMP header for DES encryption

chars basically are bytes.
So you access them by subscripting the buffer: buffer[i]
Reputation Points: 163
Solved Threads: 91
Posting Pro in Training
nucleon is offline Offline
476 posts
since Oct 2008

This thread is more than three months old

No one has posted to this discussion for at least three months. Please let old threads die and do not reply to them unless you feel you have something new and valuable to contribute that absolutely must be added to make the discussion complete. Otherwise, please start a new thread in this forum instead.
Message:
Previous Thread in C++ Forum Timeline: string replace or erase better?
Next Thread in C++ Forum Timeline: size of integer array





About Us | Contact Us | Advertise | Acceptable Use Policy
Forum Index | Build Custom RSS Feed


Follow us on Twitter


© 2011 DaniWeb® LLC