SHA256 Klass

Definition

Beräknar SHA256 hashen för indata.

public ref class SHA256 abstract : System::Security::Cryptography::HashAlgorithm
public abstract class SHA256 : System.Security.Cryptography.HashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class SHA256 : System.Security.Cryptography.HashAlgorithm
type SHA256 = class
    inherit HashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type SHA256 = class
    inherit HashAlgorithm
Public MustInherit Class SHA256
Inherits HashAlgorithm
Arv
Härledda
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 SHA256 är 256 bitar.

Det här är en abstrakt klass.

Konstruktorer

Name Description
SHA256()

Initierar en ny instans av SHA256.

Fält

Name Description
HashSizeInBits

Hashstorleken som produceras av SHA-256-algoritmen, i bitar.

HashSizeInBytes

Hashstorleken som produceras av SHA-256-algoritmen i byte.

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)
ComputeHashAsync(Stream, CancellationToken)

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

(Ärvd från HashAlgorithm)
Create()

Skapar en instans av standardimplementeringen av SHA256.

Create(String)
Föråldrad.

Skapar en instans av en angiven implementering av SHA256.

Dispose()

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

(Ärvd från HashAlgorithm)
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 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)
HashData(Byte[])

Beräknar hashen av data med hjälp av SHA-256-algoritmen.

HashData(ReadOnlySpan<Byte>, Span<Byte>)

Beräknar hashen av data med hjälp av SHA-256-algoritmen.

HashData(ReadOnlySpan<Byte>)

Beräknar hashen av data med hjälp av SHA-256-algoritmen.

HashData(Stream, Span<Byte>)

Beräknar hashen för en ström med sha-256-algoritmen.

HashData(Stream)

Beräknar hashen för en ström med sha-256-algoritmen.

HashDataAsync(Stream, CancellationToken)

Beräknar asynkront hashen för en ström med sha-256-algoritmen.

HashDataAsync(Stream, Memory<Byte>, CancellationToken)

Beräknar asynkront hashen för en ström med sha-256-algoritmen.

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()

Återställer hash-algoritmen till dess ursprungliga tillstånd.

(Ärvd från HashAlgorithm)
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)
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Försöker beräkna hashen av data med hjälp av SHA-256-algoritmen.

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