Purpose:
Get MD5 hash of a file.
Code:
using System;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Security.Cryptography;
// Developed by PhyberOptic
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see .
namespace GetMD5
{
public partial class Form1 : Form
{
private static StringBuilder build = new StringBuilder();
public Form1()
{
InitializeComponent();
}
private void txtFile_DragEnter(object sender, DragEventArgs e)
{
try
{
if (e.Data.GetDataPresent(DataFormats.FileDrop, false))
{
if (txtMD5.Text.Length > 0)
{
txtMD5.Clear();
build.Clear();
}
e.Effect = DragDropEffects.All;
}
else
{
e.Effect = DragDropEffects.None;
}
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
private void txtFile_DragDrop(object sender, DragEventArgs e)
{
string[] fileName = (string[])e.Data.GetData(DataFormats.FileDrop);
txtFile.Text = (fileName[0]);
txtMD5.Text = getmd5(txtFile.Text);
}
private void btnMD5_Click(object sender, EventArgs e)
{
try
{
if (txtMD5.Text.Length > 0)
{
txtMD5.Clear();
build.Clear();
}
OpenFileDialog open = new OpenFileDialog();
open.CheckFileExists = true;
open.CheckPathExists = true;
open.ShowDialog();
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
FileStream File = new FileStream(open.FileName, FileMode.Open, FileAccess.Read, FileShare.Read);
txtFile.Text = (open.FileName);
MD5.ComputeHash(File);
byte[] hash = MD5.Hash;
foreach (byte num in hash)
{
build.Append(String.Format("{0:X2}", num).Trim());
txtMD5.Text = build.ToString();
}
File.Close();
}
catch (NullReferenceException ex)
{
MessageBox.Show("NullReferenceException: " + ex.Message);
}
}
private string getmd5(string filename)
{
try
{
MD5CryptoServiceProvider MD5 = new MD5CryptoServiceProvider();
FileStream File = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);// open.FileName
MD5.ComputeHash(File);
byte[] hash = MD5.Hash;
foreach (byte num in hash)
{
build.Append(String.Format("{0:X2}", num).Trim());
build.ToString();
}
File.Close();
}
catch (NullReferenceException ex)
{
MessageBox.Show("NullReferenceException: " + ex.Message);
}
return build.ToString();
}
private void txtMD5_TextChanged(object sender, EventArgs e)
{
try
{
if (this.Text.Length > 32)
{
txtMD5.Clear();
}
lblLength.Text = "Length: " + txtMD5.Text.Length.ToString();
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex.Message);
}
}
private void linkLabel1_MouseDown(object sender, MouseEventArgs e)
{
if (txtMD5.Text.Length > 0)
Clipboard.SetText(txtMD5.Text);
else
MessageBox.Show("No hash to Copy!");
}
}
}
Download here: Here
Anti Spam Campaign
;+?%3E)