Udostępnij za pośrednictwem


SHA256Managed Klasa

Definicja

Przestroga

Derived cryptographic types are obsolete. Use the Create method on the base type instead.

SHA256 Oblicza skrót danych wejściowych przy użyciu biblioteki zarządzanej.

public ref class SHA256Managed sealed : System::Security::Cryptography::SHA256
public ref class SHA256Managed : System::Security::Cryptography::SHA256
public sealed class SHA256Managed : System.Security.Cryptography.SHA256
[System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class SHA256Managed : System.Security.Cryptography.SHA256
public class SHA256Managed : System.Security.Cryptography.SHA256
[System.Runtime.InteropServices.ComVisible(true)]
public class SHA256Managed : System.Security.Cryptography.SHA256
type SHA256Managed = class
    inherit SHA256
[<System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type SHA256Managed = class
    inherit SHA256
[<System.Runtime.InteropServices.ComVisible(true)>]
type SHA256Managed = class
    inherit SHA256
Public NotInheritable Class SHA256Managed
Inherits SHA256
Public Class SHA256Managed
Inherits SHA256
Dziedziczenie
SHA256Managed
Atrybuty

Przykłady

Poniższy przykład oblicza skrót SHA-256 dla wszystkich plików w katalogu.

using namespace System;
using namespace System::IO;
using namespace System::Security::Cryptography;

// Print the byte array in a readable format.
void PrintByteArray( array<Byte>^array )
{
   int i;
   for ( i = 0; i < array->Length; i++ )
   {
      Console::Write( String::Format( "{0:X2}", array[ i ] ) );
      if ( (i % 4) == 3 )
            Console::Write( " " );

   }
   Console::WriteLine();
}

int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   if ( args->Length < 2 )
   {
      Console::WriteLine( "Usage: hashdir <directory>" );
      return 0;
   }

   try
   {

      // Create a DirectoryInfo object representing the specified directory.
      DirectoryInfo^ dir = gcnew DirectoryInfo( args[ 1 ] );

      // Get the FileInfo objects for every file in the directory.
      array<FileInfo^>^files = dir->GetFiles();

      // Initialize a SHA256 hash object.
      SHA256 ^ mySHA256 = SHA256Managed::Create();
      array<Byte>^hashValue;

      // Compute and print the hash values for each file in directory.
      System::Collections::IEnumerator^ myEnum = files->GetEnumerator();
      while ( myEnum->MoveNext() )
      {
         FileInfo^ fInfo = safe_cast<FileInfo^>(myEnum->Current);

         // Create a fileStream for the file.
         FileStream^ fileStream = fInfo->Open( FileMode::Open );

         // Compute the hash of the fileStream.
         hashValue = mySHA256->ComputeHash( fileStream );

         // Write the name of the file to the Console.
         Console::Write( "{0}: ", fInfo->Name );

         // Write the hash value to the Console.
         PrintByteArray( hashValue );

         // Close the file.
         fileStream->Close();
      }
      return 0;
   }
   catch ( DirectoryNotFoundException^ ) 
   {
      Console::WriteLine( "Error: The directory specified could not be found." );
   }
   catch ( IOException^ ) 
   {
      Console::WriteLine( "Error: A file in the directory could not be accessed." );
   }

}
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

Uwagi

Skrót jest używany jako unikatowa wartość o stałym rozmiarze reprezentującym dużą ilość danych. Skróty dwóch zestawów danych powinny być zgodne, jeśli i tylko wtedy, gdy odpowiednie dane również są zgodne. Małe zmiany w danych powodują duże nieprzewidywalne zmiany skrótu.

Rozmiar skrótu dla algorytmu SHA256Managed to 256 bitów.

Konstruktory

SHA256Managed()
Przestarzałe.

Inicjuje SHA256Managed nowe wystąpienie klasy przy użyciu biblioteki zarządzanej.

Pola

HashSizeInBits
Przestarzałe.

Rozmiar skrótu generowany przez algorytm SHA256 w bitach.

(Odziedziczone po SHA256)
HashSizeInBytes
Przestarzałe.

Rozmiar skrótu generowany przez algorytm SHA256 w bajtach.

(Odziedziczone po SHA256)
HashSizeValue
Przestarzałe.

Reprezentuje rozmiar w bitach obliczonego kodu skrótu.

(Odziedziczone po HashAlgorithm)
HashValue
Przestarzałe.

Reprezentuje wartość obliczonego kodu skrótu.

(Odziedziczone po HashAlgorithm)
State
Przestarzałe.

Reprezentuje stan obliczeń skrótu.

(Odziedziczone po HashAlgorithm)

Właściwości

CanReuseTransform
Przestarzałe.

Pobiera wartość wskazującą, czy można ponownie użyć bieżącego przekształcenia.

(Odziedziczone po HashAlgorithm)
CanTransformMultipleBlocks
Przestarzałe.

Po zastąpieniu w klasie pochodnej pobiera wartość wskazującą, czy można przekształcić wiele bloków.

(Odziedziczone po HashAlgorithm)
Hash
Przestarzałe.

Pobiera wartość obliczonego kodu skrótu.

(Odziedziczone po HashAlgorithm)
HashSize
Przestarzałe.

Pobiera rozmiar w bitach obliczonego kodu skrótu.

(Odziedziczone po HashAlgorithm)
InputBlockSize
Przestarzałe.

Po przesłonięciu w klasie pochodnej pobiera rozmiar bloku wejściowego.

(Odziedziczone po HashAlgorithm)
OutputBlockSize
Przestarzałe.

Po przesłonięciu w klasie pochodnej pobiera rozmiar bloku wyjściowego.

(Odziedziczone po HashAlgorithm)

Metody

Clear()
Przestarzałe.

Zwalnia wszystkie zasoby używane przez klasę HashAlgorithm .

(Odziedziczone po HashAlgorithm)
ComputeHash(Byte[])
Przestarzałe.

Oblicza wartość skrótu dla określonej tablicy bajtów.

(Odziedziczone po HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)
Przestarzałe.

Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów.

(Odziedziczone po HashAlgorithm)
ComputeHash(Stream)
Przestarzałe.

Oblicza wartość skrótu dla określonego Stream obiektu.

(Odziedziczone po HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)
Przestarzałe.

Asynchronicznie oblicza wartość skrótu dla określonego Stream obiektu.

(Odziedziczone po HashAlgorithm)
Dispose()
Przestarzałe.

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy HashAlgorithm.

(Odziedziczone po HashAlgorithm)
Dispose(Boolean)
Przestarzałe.

Zwalnia niezarządzane zasoby używane przez SHA256Managed obiekt i opcjonalnie zwalnia zasoby zarządzane.

Dispose(Boolean)
Przestarzałe.

Zwalnia zasoby niezarządzane używane przez element HashAlgorithm i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po HashAlgorithm)
Equals(Object)
Przestarzałe.

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetHashCode()
Przestarzałe.

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()
Przestarzałe.

Type Pobiera bieżące wystąpienie.

(Odziedziczone po Object)
HashCore(Byte[], Int32, Int32)
Przestarzałe.

Gdy zastąpisz klasę pochodną, przekierowuje dane zapisywane do obiektu w SHA256 algorytmie skrótu na potrzeby obliczania skrótu.

HashCore(Byte[], Int32, Int32)
Przestarzałe.

Gdy zastąpisz klasę pochodną, przekierowuje dane zapisywane do obiektu w algorytmie skrótu na potrzeby obliczania skrótu.

(Odziedziczone po HashAlgorithm)
HashCore(ReadOnlySpan<Byte>)
Przestarzałe.

Kieruje dane zapisywane do obiektu w algorytmie skrótu na potrzeby obliczania skrótu.

(Odziedziczone po HashAlgorithm)
HashFinal()
Przestarzałe.

Po zastąpieniu w klasie pochodnej finalizuje obliczenia skrótu po przetworzeniu ostatnich danych przez obiekt strumienia kryptograficznego.

HashFinal()
Przestarzałe.

Po zastąpieniu w klasie pochodnej finalizuje obliczenia skrótu po przetworzeniu ostatnich danych przez algorytm skrótu kryptograficznego.

(Odziedziczone po HashAlgorithm)
Initialize()
Przestarzałe.

Inicjuje wystąpienie klasy SHA256Managed.

MemberwiseClone()
Przestarzałe.

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
ToString()
Przestarzałe.

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)
Przestarzałe.

Oblicza wartość skrótu dla określonego regionu tablicy bajtów wejściowych i kopiuje określony region tablicy bajtów wejściowych do określonego regionu tablicy bajtów wyjściowych.

(Odziedziczone po HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)
Przestarzałe.

Oblicza wartość skrótu dla określonego regionu określonej tablicy bajtów.

(Odziedziczone po HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)
Przestarzałe.

Próbuje obliczyć wartość skrótu dla określonej tablicy bajtów.

(Odziedziczone po HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)
Przestarzałe.

Próbuje sfinalizować obliczenia skrótu po przetworzeniu ostatnich danych przez algorytm skrótu.

(Odziedziczone po HashAlgorithm)

Jawne implementacje interfejsu

IDisposable.Dispose()
Przestarzałe.

Zwalnia zasoby niezarządzane używane przez element HashAlgorithm i opcjonalnie zwalnia zasoby zarządzane.

(Odziedziczone po HashAlgorithm)

Dotyczy

Zobacz też