8.29 - Encrypt a BMP file

Objetive

Create a program to encrypt/decrypt a BMP image file, by changing the "BM" mark in the first two bytes with MB and vice versa.

Use the advanced FileStream constructor to allow simultaneous reading and writing.


Solution

using System;
using System.IO;
namespace Bmp
{
    class Program
    {
        static void Main(string[] args)
        {
            FileStream myFile;
          
            Console.Write("Enter the name of file: ");
            string fileName = Console.ReadLine();

            if (!File.Exists(fileName))
            {
                Console.WriteLine("The file not exists!!!");
                return;
            }

            try
            {
                myFile = File.Open(fileName, FileMode.Open,FileAccess.ReadWrite);
                byte b1 = (byte)myFile.ReadByte();
                byte b2 = (byte)myFile.ReadByte();

                if ((Convert.ToChar(b1) != 'B')
                    || (Convert.ToChar(b2) != 'M'))
                {
                    Console.WriteLine("This File is NOT a BMP file");
                }
                else
                {
                    myFile.Seek(0, SeekOrigin.Begin);
                    myFile.WriteByte((byte)'M');
                    myFile.WriteByte((byte)'B');
                }
                myFile.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: {0}!!!", e.message());
            }
        }
    }
}


Popular Posts