HashAlgorithm.ComputeHash Method (Stream)

Computes the hash value for the specified Stream object.

Namespace:  System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)

'Declaration
Public Function ComputeHash ( _
	inputStream As Stream _
) As Byte()

Parameters

inputStream
Type: System.IO.Stream

The input to compute the hash code for.

Return Value

Type: System.Byte()
The computed hash code.

ExceptionCondition
ObjectDisposedException

The object has already been disposed.

The following example calculates the RIPEMD160 hash for all files in a directory.

Imports System
Imports System.IO
Imports System.Security.Cryptography
Imports System.Windows.Forms

Public Class HashDirectory

    Public Shared Sub Main(ByVal args() As String)
        Dim directory As String 
        If args.Length < 1 Then 
            Dim fdb As New FolderBrowserDialog
            Dim dr As DialogResult = fdb.ShowDialog()
            If (dr = DialogResult.OK) Then
                directory = fdb.SelectedPath
            Else
                Console.WriteLine("No directory selected")
                Return 
            End If 
        Else
            directory = args(0)
        End If 
        Try 
            ' Create a DirectoryInfo object representing the specified directory. 
            Dim dir As New DirectoryInfo(directory)
            ' Get the FileInfo objects for every file in the directory. 
            Dim files As FileInfo() = dir.GetFiles()
            ' Initialize a RIPE160 hash object. 
            Dim myRIPEMD160 As RIPEMD160 = RIPEMD160Managed.Create()
            Dim hashValue() As Byte 
            ' Compute and print the hash values for each file in directory. 
            Dim fInfo As FileInfo
            For Each fInfo In files
                ' Create a fileStream for the file. 
                Dim fileStream As FileStream = fInfo.Open(FileMode.Open)
                ' Be sure it's positioned to the beginning of the stream.
                fileStream.Position = 0
                ' Compute the hash of the fileStream.
                hashValue = myRIPEMD160.ComputeHash(fileStream)
                ' Write the name of the file to the Console.
                Console.Write(fInfo.Name + ": ")
                ' Write the hash value to the Console.
                PrintByteArray(hashValue)
                ' Close the file.
                fileStream.Close()
            Next fInfo
            Return 
        Catch DExc As DirectoryNotFoundException
            Console.WriteLine("Error: The directory specified could not be found.")
        Catch IOExc As IOException
            Console.WriteLine("Error: A file in the directory could not be accessed.")
        End Try 

    End Sub 

    ' Print the byte array in a readable format. 
    Public Shared Sub PrintByteArray(ByVal array() As Byte)
        Dim i As Integer 
        For i = 0 To array.Length - 1
            Console.Write(String.Format("{0:X2}", array(i)))
            If i Mod 4 = 3 Then
                Console.Write(" ")
            End If 
        Next i
        Console.WriteLine()

    End Sub 'PrintByteArray
End Class

.NET Framework

Supported in: 4.5.3, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Supported in: Windows Phone 8.1

Supported in: Windows Phone Silverlight 8.1

Supported in: Windows Phone Silverlight 8

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft