반응형

* 파일 MD5 체크섬 예제...

 

메인화면

전체 소스 코드

Form1.cs

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Security.Cryptography;
using System.IO;

namespace CSharp_CheckSumFile
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            //텍스트파일만 열기...
            //ofd.Filter = "TXTFile(*.txt)|*.txt";


            if(ofd.ShowDialog() == DialogResult.OK)
            {
                //파일 내용을 byte 배열로 얻어 오기...
                byte[] btAscii = File.ReadAllBytes(ofd.FileName);
                byte[] btHash = MD5.Create().ComputeHash(btAscii);

                lblSourcePath.Text = ofd.FileName;
                textBox1.Text = BitConverter.ToString(btHash).Replace("-", "").ToLower();

                if (textBox2.Text != "")
                {
                    if (textBox1.Text == textBox2.Text)
                    {
                        lbl.Text = "체크섬이 같습니다.";
                    }
                    else
                    {
                        lbl.Text = "체크섬이 다릅니다.";
                    }
                }
            }

        }

        private void button2_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();

            //텍스트파일만 열기...
            //ofd.Filter = "TXTFile(*.txt)|*.txt";

            if (ofd.ShowDialog() == DialogResult.OK)
            {
                //파일 내용을 byte 배열로 얻어 오기...
                byte[] btAscii = File.ReadAllBytes(ofd.FileName);
                byte[] btHash = MD5.Create().ComputeHash(btAscii);

                lblDestPath.Text = ofd.FileName;
                textBox2.Text = BitConverter.ToString(btHash).Replace("-", "").ToLower();

                if (textBox1.Text != "")
                {
                    if (textBox1.Text == textBox2.Text)
                    {
                        lbl.Text = "체크섬이 같습니다.";
                    }
                    else
                    {
                        lbl.Text = "체크섬이 다릅니다.";
                    }
                }
            }
        }

    }
}

 

* 예제 결과

 

위 그림은 파일 안에 내용이 같았을 경우 만약 다르다면...

 

위 그림과 같이 체크섬이 다르게 표시 됩니다.

반응형

+ Recent posts