SHA256 Classe
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Calcula o hash SHA256 para os dados de entrada.
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
- Herança
- Derivado
- Atributos
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
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 SHA256 algoritmo é de 256 bits.
Esta é uma classe abstrata.
Hash |
O tamanho do hash produzido pelo algoritmo SHA256, em bits. |
Hash |
O tamanho do hash produzido pelo algoritmo SHA256, em bytes. |
Hash |
Representa o tamanho, em bits, do código hash calculado. (Herdado de HashAlgorithm) |
Hash |
Representa o valor do código hash computado. (Herdado de HashAlgorithm) |
State |
Representa o estado do cálculo de hash. (Herdado de HashAlgorithm) |
Can |
Obtém um valor que indica se a transformação atual pode ser reutilizada. (Herdado de HashAlgorithm) |
Can |
Quando substituído em uma classe derivada, obtém um valor que indica se vários blocos podem ser transformados. (Herdado de HashAlgorithm) |
Hash |
Obtém o valor do código hash computado. (Herdado de HashAlgorithm) |
Hash |
Obtém o tamanho, em bits, do código hash computado. (Herdado de HashAlgorithm) |
Input |
Quando substituído em uma classe derivada, obtém o tamanho do bloco de entrada. (Herdado de HashAlgorithm) |
Output |
Quando substituído em uma classe derivada, obtém o tamanho do bloco de saída. (Herdado de HashAlgorithm) |
Clear() |
Libera todos os recursos usados pela classe HashAlgorithm. (Herdado de HashAlgorithm) |
Compute |
Calcula o valor do hash da matriz de bytes especificada. (Herdado de HashAlgorithm) |
Compute |
Calcula o valor de hash para a região especificada da matriz de bytes especificada. (Herdado de HashAlgorithm) |
Compute |
Calcula o valor do hash do objeto Stream especificado. (Herdado de HashAlgorithm) |
Compute |
Calcula assincronamente o valor do hash do objeto Stream especificado. (Herdado de HashAlgorithm) |
Create() |
Cria uma nova instância da implementação padrão do SHA256. |
Create(String) |
Obsoleto.
Cria uma nova instância de uma implementação especificada de SHA256. |
Dispose() |
Libera todos os recursos usados pela instância atual da classe HashAlgorithm. (Herdado de HashAlgorithm) |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo HashAlgorithm e opcionalmente libera os recursos gerenciados. (Herdado de HashAlgorithm) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
Get |
Serve como a função de hash padrão. (Herdado de Object) |
Get |
Obtém o Type da instância atual. (Herdado de Object) |
Hash |
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) |
Hash |
Roteia os dados gravados no objeto para o algoritmo de hash para cálculo do hash. (Herdado de HashAlgorithm) |
Hash |
Calcula o hash de dados usando o algoritmo SHA256. |
Hash |
Calcula o hash de dados usando o algoritmo SHA256. |
Hash |
Calcula o hash de dados usando o algoritmo SHA256. |
Hash |
Calcula o hash de um fluxo usando o algoritmo SHA256. |
Hash |
Calcula o hash de um fluxo usando o algoritmo SHA256. |
Hash |
Calcula de forma assíncrona o hash de um fluxo usando o algoritmo SHA256. |
Hash |
Calcula de forma assíncrona o hash de um fluxo usando o algoritmo SHA256. |
Hash |
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() |
Redefine o algoritmo de hash para o estado inicial. (Herdado de HashAlgorithm) |
Memberwise |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
To |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Transform |
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) |
Transform |
Calcula o valor de hash para a região especificada da matriz de bytes especificada. (Herdado de HashAlgorithm) |
Try |
Tenta calcular o valor de hash para a matriz de bytes especificada. (Herdado de HashAlgorithm) |
Try |
Tenta computar o hash de dados usando o algoritmo SHA256. |
Try |
Tenta finalizar o cálculo de hash depois que os últimos dados são processados pelo algoritmo de hash. (Herdado de HashAlgorithm) |
IDisposable. |
Libera os recursos não gerenciados usados pelo HashAlgorithm e opcionalmente libera os recursos gerenciados. (Herdado de HashAlgorithm) |
Produto | Versões |
---|---|
.NET | Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9 |
.NET Framework | 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1 |
.NET Standard | 1.3, 1.4, 1.6, 2.0, 2.1 |
Comentários do .NET
O .NET é um projeto código aberto. Selecione um link para fornecer comentários: