SHA256Managed Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Calcula o SHA256 hash dos dados de entrada usando a biblioteca gerida.
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
- Herança
- Atributos
Exemplos
O exemplo seguinte calcula o hash SHA-256 para todos os ficheiros numa diretoria.
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
Observações
O hash é usado como um valor único de tamanho fixo que representa uma grande quantidade de dados. Os hashes de dois conjuntos de dados devem coincidir se e só se os dados correspondentes também coincidirem. Pequenas alterações nos dados resultam em alterações grandes e imprevisíveis no hash.
O tamanho do hash para o SHA256Managed algoritmo é de 256 bits.
Construtores
| Name | Description |
|---|---|
| SHA256Managed() |
Inicializa uma nova instância da SHA256Managed classe usando a biblioteca gerida. |
Campos
| Name | Description |
|---|---|
| HashSizeValue |
Representa o tamanho, em bits, do código de hash calculado. (Herdado de HashAlgorithm) |
| HashValue |
Representa o valor do código de hash calculado. (Herdado de HashAlgorithm) |
| State |
Representa o estado do cálculo do hash. (Herdado de HashAlgorithm) |
Propriedades
| Name | Description |
|---|---|
| CanReuseTransform |
Recebe um valor que indica se a transformada de corrente pode ser reutilizada. (Herdado de HashAlgorithm) |
| CanTransformMultipleBlocks |
Quando sobrescrito numa classe derivada, obtém um valor que indica se múltiplos blocos podem ser transformados. (Herdado de HashAlgorithm) |
| Hash |
Obtém o valor do código hash calculado. (Herdado de HashAlgorithm) |
| HashSize |
Obtém o tamanho, em bits, do código de hash calculado. (Herdado de HashAlgorithm) |
| InputBlockSize |
Quando sobrescrito numa classe derivada, obtém o tamanho do bloco de entrada. (Herdado de HashAlgorithm) |
| OutputBlockSize |
Quando sobrescrito numa classe derivada, obtém o tamanho do bloco de saída. (Herdado de HashAlgorithm) |
Métodos
| Name | Description |
|---|---|
| Clear() |
Liberta todos os recursos usados pela HashAlgorithm turma. (Herdado de HashAlgorithm) |
| ComputeHash(Byte[], Int32, Int32) |
Calcula o valor de hash para a região especificada do array de bytes especificado. (Herdado de HashAlgorithm) |
| ComputeHash(Byte[]) |
Calcula o valor de hash para o array de bytes especificado. (Herdado de HashAlgorithm) |
| ComputeHash(Stream) |
Calcula o valor de hash para o objeto especificado Stream . (Herdado de HashAlgorithm) |
| Dispose() |
Liberta todos os recursos usados pela instância atual da HashAlgorithm classe. (Herdado de HashAlgorithm) |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo SHA256Managed objeto e, opcionalmente, liberta os recursos geridos. |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo HashAlgorithm e opcionalmente liberta os recursos geridos. (Herdado de HashAlgorithm) |
| Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
| GetHashCode() |
Serve como função de hash predefinida. (Herdado de Object) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| HashCore(Byte[], Int32, Int32) |
Quando sobreposto numa classe derivada, os dados escritos para o objeto são direcionados para o SHA256 algoritmo de hash para calcular o hash. |
| HashCore(Byte[], Int32, Int32) |
Quando sobreposto numa classe derivada, os dados escritos para o objeto são direcionados para o algoritmo de hash para calcular o hash. (Herdado de HashAlgorithm) |
| HashCore(ReadOnlySpan<Byte>) |
Encaminha os dados escritos para o objeto para o algoritmo de hash para calcular o hash. (Herdado de HashAlgorithm) |
| HashFinal() |
Quando sobreposto numa classe derivada, finaliza o cálculo do hash após o processamento dos últimos dados pelo objeto de fluxo criptográfico. |
| HashFinal() |
Quando sobreposto numa classe derivada, finaliza o cálculo do hash após o último dado ser processado pelo algoritmo de hash criptográfico. (Herdado de HashAlgorithm) |
| Initialize() |
Inicializa uma instância de SHA256Managed. |
| MemberwiseClone() |
Cria uma cópia superficial do atual Object. (Herdado de Object) |
| ToString() |
Devolve uma cadeia que representa o objeto atual. (Herdado de Object) |
| TransformBlock(Byte[], Int32, Int32, Byte[], Int32) |
Calcula o valor de hash para a região especificada do array de bytes de entrada e copia a região especificada do array de bytes de entrada para a região especificada do array de bytes de saída. (Herdado de HashAlgorithm) |
| TransformFinalBlock(Byte[], Int32, Int32) |
Calcula o valor de hash para a região especificada do array de bytes especificado. (Herdado de HashAlgorithm) |
| TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Tenta calcular o valor de hash para o array de bytes especificado. (Herdado de HashAlgorithm) |
| TryHashFinal(Span<Byte>, Int32) |
Tenta finalizar o cálculo do hash depois de os últimos dados terem sido processados pelo algoritmo de hash. (Herdado de HashAlgorithm) |
Implementações de Interface Explícita
| Name | Description |
|---|---|
| IDisposable.Dispose() |
Liberta os recursos não geridos usados pelo HashAlgorithm e opcionalmente liberta os recursos geridos. (Herdado de HashAlgorithm) |