Cryptographic Hash Algorithms Sample

This sample demonstrates how to use hash functions to ensure data integrity.

To get samples and instructions for installing them

  • Do one or more of the following:

    • On the Help menu, click Samples.

      The Readme displays information about samples.

    • Visit the Visual Studio 2008 Samples Web site. The most recent versions of samples are available there.

    • Locate samples on the computer on which Visual Studio is installed. By default, samples and a Readme file are installed in drive:\Program Files\Microsoft Visual Studio 9.0\Samples\lcid. For Express editions of Visual Studio, all samples are located online.

For more information, see Visual Studio Samples.

Security noteSecurity Note:

This sample code is intended to illustrate a concept, and it shows only the code that is relevant to that concept. It may not meet the security requirements for a specific environment, and it should not be used exactly as shown. We recommend that you add security and error-handling code to make your projects more secure and robust. Microsoft provides this sample code "AS IS" with no warranties.

To run this sample

  • Press F5.

Demonstrates

The application compares two hash values: the hash value of text in a file to the hash value of text in a TextBox control. Hash values are unique and compact numeric representations of a piece of data. The text file is an XML version of the Products table of the Northwind database. When the application starts, the XML file, stored in My.Resources, is retrieved and loaded into the TextBox control. The hash value for the XML file is calculated. When you click the Compare! button, the hash value of the TextBox text is calculated. If you have not changed the text in the TextBox control, the hash values will match. Changing even one character in a source file changes the hash value.

The RadioButton controls determine the type of hash calculated: MD5, SHA1, or SHA384. A separate .NET Framework class, derived from the HashAlgorithm class, exists for each hash algorithm. These classes are used to calculate the hash values.

See Also

Concepts

Cryptography Overview

Reference

MD5CryptoServiceProvider

SHA1CryptoServiceProvider

SHA384Managed

StreamReader

WriteXml

ReadXml