HashAlgorithm Classe

Definição

Representa a classe base da qual todas as implementações de algoritmos de hash criptográfico devem derivar.

public ref class HashAlgorithm abstract : System::Security::Cryptography::ICryptoTransform
public ref class HashAlgorithm abstract : IDisposable
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HashAlgorithm : System.Security.Cryptography.ICryptoTransform
public abstract class HashAlgorithm : IDisposable
type HashAlgorithm = class
    interface ICryptoTransform
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type HashAlgorithm = class
    interface ICryptoTransform
    interface IDisposable
[<System.Runtime.InteropServices.ComVisible(true)>]
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
type HashAlgorithm = class
    interface IDisposable
type HashAlgorithm = class
    interface IDisposable
    interface ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements ICryptoTransform
Public MustInherit Class HashAlgorithm
Implements IDisposable
Herança
HashAlgorithm
Derivado
Atributos
Implementações

Exemplos

O exemplo de código a seguir calcula o SHA256 hash de uma matriz. Este exemplo pressupõe que há uma matriz dataArray[]de bytes predefinida. SHA256 é uma classe derivada de HashAlgorithm.

HashAlgorithm sha = SHA256.Create();
byte[] result = sha.ComputeHash(dataArray);
Dim sha As SHA256 = SHA256.Create()
Dim result As Byte() = sha.ComputeHash(dataArray)

Comentários

As funções de hash são fundamentais para a criptografia moderna. Essas funções mapeiam cadeias de caracteres binárias de um comprimento arbitrário para cadeias de caracteres binárias pequenas de um comprimento fixo, conhecidos como valores de hash. Uma função de hash criptográfica tem a propriedade de que é computacionalmente inviável encontrar duas entradas distintas que têm o mesmo valor. As funções de hash geralmente são usadas com assinaturas digitais e para integridade de dados.

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

Devido a problemas de colisão com SHA-1, a Microsoft recomenda um modelo de segurança baseado no SHA-256 ou superior.

Notas aos Implementadores

Ao herdar da HashAlgorithm classe, você deve substituir os seguintes membros: HashCore(Byte[], Int32, Int32) e HashFinal().

Construtores

Nome Description
HashAlgorithm()

Inicializa uma nova instância da classe HashAlgorithm.

Campos

Nome Description
HashSizeValue

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

HashValue

Representa o valor do código hash computado.

State

Representa o estado da computação de hash.

Propriedades

Nome Description
CanReuseTransform

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

CanTransformMultipleBlocks

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

Hash

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

HashSize

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

InputBlockSize

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

OutputBlockSize

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

Métodos

Nome Description
Clear()

Libera todos os recursos usados pela HashAlgorithm classe.

ComputeHash(Byte[], Int32, Int32)

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

ComputeHash(Byte[])

Calcula o valor de hash para a matriz de bytes especificada.

ComputeHash(Stream)

Calcula o valor de hash para o objeto especificado Stream .

Create()

Cria uma instância da implementação padrão de um algoritmo de hash.

Create(String)

Cria uma instância da implementação especificada de um algoritmo de hash.

Dispose()

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

Dispose(Boolean)

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

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

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

HashCore(ReadOnlySpan<Byte>)

Roteia dados gravados para o objeto no algoritmo de hash para calcular o hash.

HashFinal()

Quando substituído em uma classe derivada, finaliza a computação de hash depois que os últimos dados são processados pelo algoritmo de hash criptográfico.

Initialize()

Redefine o algoritmo de hash para seu estado inicial.

MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

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

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.

TransformFinalBlock(Byte[], Int32, Int32)

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

TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32)

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

TryHashFinal(Span<Byte>, Int32)

Tenta finalizar a computação de hash depois que os últimos dados são processados pelo algoritmo de hash.

Implantações explícitas de interface

Nome Description
IDisposable.Dispose()

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

Aplica-se a

Confira também