Compartilhar via


SHA256Managed Classe

Definição

Cuidado

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

Calcula o hash SHA256 para os dados de entrada usando a biblioteca gerenciada.

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
Herança
SHA256Managed
Atributos

Exemplos

O exemplo a seguir calcula o hash SHA-256 para todos os arquivos em um diretório.

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

Comentários

O hash é usado como um valor exclusivo de tamanho fixo que representa uma grande quantidade de dados. Os hashes de dois conjuntos de dados devem corresponder se e somente se os dados correspondentes também corresponderem. Pequenas alterações nos dados resultam em grandes alterações imprevisíveis no hash.

O tamanho do hash para o SHA256Managed algoritmo é de 256 bits.

Construtores

SHA256Managed()
Obsoleto.

Inicializa uma nova instância da classe SHA256Managed usando a biblioteca gerenciada.

Campos

HashSizeInBits
Obsoleto.

O tamanho do hash produzido pelo algoritmo SHA256, em bits.

(Herdado de SHA256)
HashSizeInBytes
Obsoleto.

O tamanho do hash produzido pelo algoritmo SHA256, em bytes.

(Herdado de SHA256)
HashSizeValue
Obsoleto.

Representa o tamanho, em bits, do código hash calculado.

(Herdado de HashAlgorithm)
HashValue
Obsoleto.

Representa o valor do código hash computado.

(Herdado de HashAlgorithm)
State
Obsoleto.

Representa o estado do cálculo de hash.

(Herdado de HashAlgorithm)

Propriedades

CanReuseTransform
Obsoleto.

Obtém um valor que indica se a transformação atual pode ser reutilizada.

(Herdado de HashAlgorithm)
CanTransformMultipleBlocks
Obsoleto.

Quando substituído em uma classe derivada, obtém um valor que indica se vários blocos podem ser transformados.

(Herdado de HashAlgorithm)
Hash
Obsoleto.

Obtém o valor do código hash computado.

(Herdado de HashAlgorithm)
HashSize
Obsoleto.

Obtém o tamanho, em bits, do código hash computado.

(Herdado de HashAlgorithm)
InputBlockSize
Obsoleto.

Quando substituído em uma classe derivada, obtém o tamanho do bloco de entrada.

(Herdado de HashAlgorithm)
OutputBlockSize
Obsoleto.

Quando substituído em uma classe derivada, obtém o tamanho do bloco de saída.

(Herdado de HashAlgorithm)

Métodos

Clear()
Obsoleto.

Libera todos os recursos usados pela classe HashAlgorithm.

(Herdado de HashAlgorithm)
ComputeHash(Byte[])
Obsoleto.

Calcula o valor do hash da matriz de bytes especificada.

(Herdado de HashAlgorithm)
ComputeHash(Byte[], Int32, Int32)
Obsoleto.

Calcula o valor de hash para a região especificada da matriz de bytes especificada.

(Herdado de HashAlgorithm)
ComputeHash(Stream)
Obsoleto.

Calcula o valor do hash do objeto Stream especificado.

(Herdado de HashAlgorithm)
ComputeHashAsync(Stream, CancellationToken)
Obsoleto.

Calcula assincronamente o valor do hash do objeto Stream especificado.

(Herdado de HashAlgorithm)
Dispose()
Obsoleto.

Libera todos os recursos usados pela instância atual da classe HashAlgorithm.

(Herdado de HashAlgorithm)
Dispose(Boolean)
Obsoleto.

Libera os recursos não gerenciados usados pelo objeto SHA256Managed e libera opcionalmente os recursos gerenciados.

Dispose(Boolean)
Obsoleto.

Libera os recursos não gerenciados usados pelo HashAlgorithm e opcionalmente libera os recursos gerenciados.

(Herdado de HashAlgorithm)
Equals(Object)
Obsoleto.

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()
Obsoleto.

Serve como a função de hash padrão.

(Herdado de Object)
GetType()
Obsoleto.

Obtém o Type da instância atual.

(Herdado de Object)
HashCore(Byte[], Int32, Int32)
Obsoleto.

Quando substituído em uma classe derivada, roteia os dados gravados no objeto para o algoritmo de hash SHA256 para computar o hash.

HashCore(Byte[], Int32, Int32)
Obsoleto.

Quando substituído em uma classe derivada, roteia os dados gravados no objeto para o algoritmo de hash para computar o hash.

(Herdado de HashAlgorithm)
HashCore(ReadOnlySpan<Byte>)
Obsoleto.

Roteia os dados gravados no objeto para o algoritmo de hash para cálculo do hash.

(Herdado de HashAlgorithm)
HashFinal()
Obsoleto.

Quando substituído em uma classe derivada, finaliza o cálculo de hash depois que os últimos dados são processados pelo objeto de fluxo criptográfico.

HashFinal()
Obsoleto.

Quando substituído em uma classe derivada, finaliza o cálculo de hash depois que os últimos dados são processados pelo algoritmo de hash de criptografia.

(Herdado de HashAlgorithm)
Initialize()
Obsoleto.

Inicializa uma instância de SHA256Managed.

MemberwiseClone()
Obsoleto.

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()
Obsoleto.

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)
Obsoleto.

Calcula o valor de hash para a região especificada da matriz de bytes de entrada e copia a região especificada da matriz de bytes de entrada para a região especificada da matriz de bytes de saída.

(Herdado de HashAlgorithm)
TransformFinalBlock(Byte[], Int32, Int32)
Obsoleto.

Calcula o valor de hash para a região especificada da matriz de bytes especificada.

(Herdado de HashAlgorithm)
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)
Obsoleto.

Tenta calcular o valor de hash para a matriz de bytes especificada.

(Herdado de HashAlgorithm)
TryHashFinal(Span<Byte>, Int32)
Obsoleto.

Tenta finalizar o cálculo de hash depois que os últimos dados são processados pelo algoritmo de hash.

(Herdado de HashAlgorithm)

Implantações explícitas de interface

IDisposable.Dispose()
Obsoleto.

Libera os recursos não gerenciados usados pelo HashAlgorithm e opcionalmente libera os recursos gerenciados.

(Herdado de HashAlgorithm)

Aplica-se a

Confira também