<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Passion and Technology &#187; Software Engineering &amp; Technology</title>
	<atom:link href="http://glamorclicks.com/blog/category/software-tools-technology/feed/" rel="self" type="application/rss+xml" />
	<link>http://glamorclicks.com/blog</link>
	<description>Blog about Digital Photography, Software Engineering, Tools and Technology Trends.</description>
	<lastBuildDate>Mon, 29 Jun 2009 07:25:30 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Checksum Generation and Validation using MD5 Hash</title>
		<link>http://glamorclicks.com/blog/2009/06/checksum-generation-and-validation-using-md5-hash/</link>
		<comments>http://glamorclicks.com/blog/2009/06/checksum-generation-and-validation-using-md5-hash/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 06:57:11 +0000</pubDate>
		<dc:creator>Harpreet Rana</dc:creator>
				<category><![CDATA[Software Engineering & Technology]]></category>

		<guid isPermaLink="false">http://glamorclicks.com/blog/?p=37</guid>
		<description><![CDATA[
Need
You need to deliver individual file(s) to the customer. You need a mechanism to be certain that the file(s) provided by you are the same file(s) that the customer downloads at their end.
Solution
Create Checksums for the file(s). The customer downloads the file(s) and verifies the checksum supplied by you.
What exactly is a checksum and why [...]]]></description>
			<content:encoded><![CDATA[<p><!--– google_ad_section_start –--></p>
<h1><a name="_Toc233435738">Need</a></h1>
<p class="MsoNormal"><span style="font-family: Garamond;">You need to deliver individual file(s) to the customer. You need a mechanism to be certain that the file(s) provided by you are the same file(s) that the customer downloads at their end.</span></p>
<h1><a name="_Toc233435739">Solution</a></h1>
<p class="MsoNormal"><span style="font-family: Garamond;">Create Checksums for the file(s). The customer downloads the file(s) and verifies the checksum supplied by you.</span></p>
<h2><a name="_Toc233435740">What exactly is a checksum and why do you need it?</a></h2>
<p class="MsoNormal"><span style="font-family: Garamond;">A checksum is a way to ensure that the file provided is the correct file.  Checksum acts like a &#8216;biometric match&#8217; of a file, if a file gets corrupted or is of a different version the biometric match will fail and help the user identify that the file being used is not the correct one. A HASH is generated for the file(s). This method of validation will make sure that the file(s) provided by you are the same file(s) that the customer downloads at their end.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"> </span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">MD5 is the most widely used checksum algorithm to generate a HASH for the files.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">Example of a MD5 checksum:</span></p>
<p class="MsoNormal"><span style="font-size: 11pt; font-family: Garamond;">c728b4eefda87e3efce436f021564a8c *testApplication.exe</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">The long string at the front of the file is the MD5 Hash for the </span><span style="font-size: 11pt; font-family: Garamond;">testApplication</span><span style="font-family: Garamond;">.exe</span></p>
<h1><a name="_Toc233435741">CheckSum Generation and Validation Process</a></h1>
<h2><a name="_Toc233435742">Process for generating checksums</a></h2>
<p class="MsoNormal"><span style="font-family: Garamond;">There are various utilities available to generate MD5 checksum. Some of the well known utilities are listed below:</span></p>
<ol>
<li style="text-align: left;"><!--[if !supportLists]--><span style="font-family: Garamond;"><span> </span></span><span style="font-family: Garamond;">Microsoft’s FCIV (File Checksum Integrity Verifier): This is a command line utility with no graphical interface.</span></li>
<li style="text-align: left;"><!--[if !supportLists]--><span style="font-family: Garamond;"><span> </span></span><span style="font-family: Garamond;">MD5Summer: MD5Sums is a simple GUI tool to generate checksums. One can download it from <a href="http://www.md5summer.org/download.html">http://www.md5summer.org/download.html</a></span></li>
</ol>
<p class="MsoNormal"><span style="font-family: Garamond;"> </span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">For the purpose of explanation I am using the MD5Summer tool. </span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">The next sections will explain how to generate and verify checksums using the MD5Summers tool.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"> </span><a name="_Toc233435743"><span class="Heading2Char"><span style="font-size: 14pt;">Steps to Create Checksum using MD5Summers</span></span></a><span class="Heading2Char"><span style="font-size: 14pt;"> </span></span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">Download the tool and install it to c:\MD5 folder.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">Once the installation is completed, launch MD5Summers using the md5Summer.exe<br />
</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">The following screen will appear: </span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"><img class="alignnone size-full wp-image-23" title="image001" src="http://glamorclicks.com/blog/wp-content/uploads/2009/06/image001.png" alt="image001" width="405" height="284" /></span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">Highlight the folder that contains the files you want to generate checksums for. In my example, I want to send files under “MessengerFiles” folder</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"><img class="alignnone size-full wp-image-26" title="image004" src="http://glamorclicks.com/blog/wp-content/uploads/2009/06/image004.jpg" alt="image004" width="405" height="284" /></span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">and click Create sums button to generate the MD5 hash value. When you click the Create Sums button the following screen will pop up.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"><img class="alignnone size-full wp-image-27" title="image005" src="http://glamorclicks.com/blog/wp-content/uploads/2009/06/image005.png" alt="image005" width="749" height="427" /></span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">Select the file(s) and click Add.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"><img class="alignnone size-full wp-image-30" title="image008" src="http://glamorclicks.com/blog/wp-content/uploads/2009/06/image008.jpg" alt="image008" width="576" height="328" /></span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">Click OK to generate the checksum, depending on the size of the file it could take from a few seconds to a few minutes for larger files.  It will ask you to save the generated file.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"><img class="alignnone size-full wp-image-31" title="image009" src="http://glamorclicks.com/blog/wp-content/uploads/2009/06/image009.png" alt="image009" width="785" height="613" /></span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">The file gets saved as MD5.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"> </span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">Example: testApplication.MD5.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"> </span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">The contents of the file are as below: </span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"># MD5 checksums generated by MD5summer (http://www.md5summer.org)</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"># Generated 6/22/2009 11:49:18 AM</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">754b9db19f79dbc4992f7166eb0f37ce *testApplication.exe</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;"> </span></p>
<p><span style="font-family: Garamond;">The final screen shows the checksum and the files</span></p>
<p><span style="font-family: Garamond;"><img class="alignnone size-full wp-image-34" title="image012" src="http://glamorclicks.com/blog/wp-content/uploads/2009/06/image012.jpg" alt="image012" width="576" height="192" /></span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">You will send the file(s) and the generated Checksums (MD5 Hash value) to the customer. The customer needs to validate the checksum at their end.</span></p>
<h2><a name="_Toc233435744">CheckSum Validation Process</a></h2>
<p class="MsoNormal"><span style="font-family: Garamond;">The Customer would have to verify the HASHes provided by you.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">They would use MD5Summers to generate the checksums at their end and verify it with the checksum provided.</span></p>
<p class="MsoNormal"><span style="font-family: Garamond;">After a gruesome visual string comparison, it can be validated that the two MD5 hash values are equal and the files provided are legit.</span></p>
<h2><a name="_Toc233435745">Conclusion</a></h2>
<p><span style="font-family: Garamond;">By using the above MD5 Checksum generation and validation process you will be certain that the file(s) provided by you are the same files that the customer downloads at their end.</span><br />
<!-- google_ad_section_end --></p>
]]></content:encoded>
			<wfw:commentRss>http://glamorclicks.com/blog/2009/06/checksum-generation-and-validation-using-md5-hash/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
