Encrypt a BMP file Learn programming C# Sharp

Lesson:

File Management


Exercise:

Encrypt a BMP file 53


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.


Code:

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());
            }
        }
    }
}