SHA256Managed Klass

Definition

Beräknar SHA256 hashen för indata med hjälp av det hanterade biblioteket.

public ref class SHA256Managed : System::Security::Cryptography::SHA256
public ref class SHA256Managed sealed : System::Security::Cryptography::SHA256
public class SHA256Managed : System.Security.Cryptography.SHA256
[System.Runtime.InteropServices.ComVisible(true)]
public class SHA256Managed : System.Security.Cryptography.SHA256
public sealed class SHA256Managed : System.Security.Cryptography.SHA256
type SHA256Managed = class
    inherit SHA256
[<System.Runtime.InteropServices.ComVisible(true)>]
type SHA256Managed = class
    inherit SHA256
Public Class SHA256Managed
Inherits SHA256
Public NotInheritable Class SHA256Managed
Inherits SHA256
Arv
SHA256Managed
Attribut

Exempel

I följande exempel beräknas SHA-256-hashen för alla filer i en katalog.

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

public class HashDirectory
{
    public static void Main(string[] args)
    {
        if (args.Length < 1)
        {
            Console.WriteLine("No directory selected.");
            return;
        }

        string directory = args[0];
        if (Directory.Exists(directory))
        {
            // Create a DirectoryInfo object representing the specified directory.
            var dir = new DirectoryInfo(directory);
            // Get the FileInfo objects for every file in the directory.
            FileInfo[] files = dir.GetFiles();
            // Initialize a SHA256 hash object.
            using (SHA256 mySHA256 = SHA256.Create())
            {
                // Compute and print the hash values for each file in directory.
                foreach (FileInfo fInfo in files)
                {
                    using (FileStream fileStream = fInfo.Open(FileMode.Open))
                    {
                        try
                        {
                            // Create a fileStream for the file.
                            // Be sure it's positioned to the beginning of the stream.
                            fileStream.Position = 0;
                            // Compute the hash of the fileStream.
                            byte[] hashValue = mySHA256.ComputeHash(fileStream);
                            // Write the name and hash value of the file to the console.
                            Console.Write($"{fInfo.Name}: ");
                            PrintByteArray(hashValue);
                        }
                        catch (IOException e)
                        {
                            Console.WriteLine($"I/O Exception: {e.Message}");
                        }
                        catch (UnauthorizedAccessException e)
                        {
                            Console.WriteLine($"Access Exception: {e.Message}");
                        }
                    }
                }
            }
        }
        else
        {
            Console.WriteLine("The directory specified could not be found.");
        }
    }

    // Display the byte array in a readable format.
    public static void PrintByteArray(byte[] array)
    {
        for (int i = 0; i < array.Length; i++)
        {
            Console.Write($"{array[i]:X2}");
            if ((i % 4) == 3) Console.Write(" ");
        }
        Console.WriteLine();
    }
}
Imports System.IO
Imports System.Security.Cryptography

Public Module HashDirectory

    Public Sub Main(ByVal args() As String)
        If args.Length < 1 Then
            Console.WriteLine("No directory selected")
            Return
        End If

        Dim targetDirectory As String = args(0)
        If Directory.Exists(targetDirectory) Then
            ' Create a DirectoryInfo object representing the specified directory.
            Dim dir As New DirectoryInfo(targetDirectory)
            ' Get the FileInfo objects for every file in the directory.
            Dim files As FileInfo() = dir.GetFiles()
            ' Initialize a SHA256 hash object.
            Using mySHA256 As SHA256 = SHA256.Create()
                ' Compute and print the hash values for each file in directory.
                For Each fInfo  As FileInfo In files
                    Try
                        ' Create a fileStream for the file.
                        Dim 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.
                        Dim hashValue() As Byte = mySHA256.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()
                    Catch e As IOException
                        Console.WriteLine($"I/O Exception: {e.Message}")
                    Catch e As UnauthorizedAccessException 
                        Console.WriteLine($"Access Exception: {e.Message}")
                    End Try    
                Next 
            End Using
        Else
           Console.WriteLine("The directory specified could not be found.")
        End If
    End Sub

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

    End Sub 
End Module

Kommentarer

Hashen används som ett unikt värde med fast storlek som representerar en stor mängd data. Hashvärden för två datamängder ska matcha om och endast om motsvarande data också matchar. Små ändringar i data resulterar i stora oförutsägbara ändringar i hashen.

Hash-storleken för algoritmen SHA256Managed är 256 bitar.

Konstruktorer

Name Description
SHA256Managed()

Initierar en ny instans av klassen med hjälp av SHA256Managed det hanterade biblioteket.

Fält

Name Description
HashSizeValue

Representerar storleken, i bitar, på den beräknade hashkoden.

(Ärvd från HashAlgorithm)
HashValue

Representerar värdet för den beräknade hashkoden.

(Ärvd från HashAlgorithm)
State

Representerar tillståndet för hash-beräkningen.

(Ärvd från HashAlgorithm)

Egenskaper

Name Description
CanReuseTransform

Hämtar ett värde som anger om den aktuella transformeringen kan återanvändas.

(Ärvd från HashAlgorithm)
CanTransformMultipleBlocks

När det åsidosättas i en härledd klass får du ett värde som anger om flera block kan transformeras.

(Ärvd från HashAlgorithm)
Hash

Hämtar värdet för den beräknade hashkoden.

(Ärvd från HashAlgorithm)
HashSize

Hämtar storleken, i bitar, på den beräknade hashkoden.

(Ärvd från HashAlgorithm)
InputBlockSize

När det åsidosättas i en härledd klass hämtar indatablockstorleken.

(Ärvd från HashAlgorithm)
OutputBlockSize

När det åsidosättas i en härledd klass hämtar du utdatablockets storlek.

(Ärvd från HashAlgorithm)

Metoder

Name Description
Clear()

Släpper alla resurser som används av HashAlgorithm klassen.

(Ärvd från HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)

Beräknar hash-värdet för den angivna regionen för den angivna bytematrisen.

(Ärvd från HashAlgorithm)
ComputeHash(Byte[])

Beräknar hash-värdet för den angivna bytematrisen.

(Ärvd från HashAlgorithm)
ComputeHash(Stream)

Beräknar hash-värdet för det angivna Stream objektet.

(Ärvd från HashAlgorithm)
Dispose()

Släpper alla resurser som används av den aktuella instansen HashAlgorithm av klassen.

(Ärvd från HashAlgorithm)
Dispose(Boolean)

Släpper ohanterade resurser som används av SHA256Managed objektet och frigör eventuellt de hanterade resurserna.

Dispose(Boolean)

Släpper de ohanterade resurser som används av HashAlgorithm och släpper eventuellt de hanterade resurserna.

(Ärvd från HashAlgorithm)
Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
HashCore(Byte[], Int32, Int32)

När de åsidosätts i en härledd klass dirigeras data som skrivits till objektet till hash-algoritmen SHA256 för att beräkna hashen.

HashCore(Byte[], Int32, Int32)

När de åsidosätts i en härledd klass dirigeras data som skrivits till objektet till hash-algoritmen för att beräkna hashen.

(Ärvd från HashAlgorithm)
HashCore(ReadOnlySpan<Byte>)

Dirigerar data som skrivs till objektet till hash-algoritmen för att beräkna hashen.

(Ärvd från HashAlgorithm)
HashFinal()

När den åsidosätts i en härledd klass slutför du hash-beräkningen efter att de senaste data bearbetas av det kryptografiska dataströmobjektet.

HashFinal()

När den åsidosättas i en härledd klass slutför du hash-beräkningen efter att de senaste data har bearbetats av den kryptografiska hash-algoritmen.

(Ärvd från HashAlgorithm)
Initialize()

Initierar en instans av SHA256Managed.

MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Beräknar hash-värdet för den angivna regionen för indatabytematrisen och kopierar den angivna regionen för indatabytematrisen till den angivna regionen för utdatabytematrisen.

(Ärvd från HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)

Beräknar hash-värdet för den angivna regionen för den angivna bytematrisen.

(Ärvd från HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Försöker beräkna hash-värdet för den angivna bytematrisen.

(Ärvd från HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)

Försök att slutföra hash-beräkningen när de senaste data bearbetas av hash-algoritmen.

(Ärvd från HashAlgorithm)

Explicita gränssnittsimplementeringar

Name Description
IDisposable.Dispose()

Släpper de ohanterade resurser som används av HashAlgorithm och släpper eventuellt de hanterade resurserna.

(Ärvd från HashAlgorithm)

Gäller för

Se även