HashAlgorithm 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.
Representa a classe base da qual todas as implementações de algoritmos de hash criptográficos 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 seguinte exemplo de código calcula o SHA256 hash de um array. Este exemplo assume que existe um array dataArray[]de bytes predefinido .
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)
Observações
As funções de hash são fundamentais para a criptografia moderna. Estas funções mapeiam cadeias binárias de comprimento arbitrário para cadeias binárias pequenas de comprimento fixo, conhecidas como valores hash. Uma função de hash criptográfica tem a propriedade de ser computacionalmente inviável encontrar duas entradas distintas que hacheiam para o mesmo valor. As funções de hash são frequentemente usadas com assinaturas digitais e para integridade de dados.
O hash é usado como um valor único de tamanho fixo que representa uma grande quantidade de dados. Hashes de dois conjuntos de dados devem coincidir se os dados correspondentes também coincidirem. Pequenas alterações nos dados resultam em alterações grandes e imprevisíveis no hash.
Devido a problemas de colisão com o SHA-1, a Microsoft recomenda um modelo de segurança baseado no SHA-256 ou superior.
Notas para Implementadores
Quando herdas da HashAlgorithm classe, deves sobrepor os seguintes membros: HashCore(Byte[], Int32, Int32) e HashFinal().
Construtores
| Name | Description |
|---|---|
| HashAlgorithm() |
Inicializa uma nova instância da HashAlgorithm classe. |
Campos
| Name | Description |
|---|---|
| HashSizeValue |
Representa o tamanho, em bits, do código de hash calculado. |
| HashValue |
Representa o valor do código de hash calculado. |
| State |
Representa o estado do cálculo do hash. |
Propriedades
| Name | Description |
|---|---|
| CanReuseTransform |
Recebe um valor que indica se a transformada de corrente pode ser reutilizada. |
| CanTransformMultipleBlocks |
Quando sobrescrito numa classe derivada, obtém um valor que indica se múltiplos blocos podem ser transformados. |
| Hash |
Obtém o valor do código hash calculado. |
| HashSize |
Obtém o tamanho, em bits, do código de hash calculado. |
| InputBlockSize |
Quando sobrescrito numa classe derivada, obtém o tamanho do bloco de entrada. |
| OutputBlockSize |
Quando sobrescrito numa classe derivada, obtém o tamanho do bloco de saída. |
Métodos
| Name | Description |
|---|---|
| Clear() |
Liberta todos os recursos usados pela HashAlgorithm turma. |
| ComputeHash(Byte[], Int32, Int32) |
Calcula o valor de hash para a região especificada do array de bytes especificado. |
| ComputeHash(Byte[]) |
Calcula o valor de hash para o array de bytes especificado. |
| 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() |
Liberta todos os recursos usados pela instância atual da HashAlgorithm classe. |
| Dispose(Boolean) |
Liberta os recursos não geridos usados pelo HashAlgorithm e opcionalmente liberta os recursos geridos. |
| 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 algoritmo de hash para calcular o hash. |
| HashCore(ReadOnlySpan<Byte>) |
Encaminha os dados escritos para o objeto para o algoritmo de hash para calcular o hash. |
| 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. |
| Initialize() |
Reinicia o algoritmo de hash para o seu estado inicial. |
| 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. |
| TransformFinalBlock(Byte[], Int32, Int32) |
Calcula o valor de hash para a região especificada do array de bytes especificado. |
| TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Tenta calcular o valor de hash para o array de bytes especificado. |
| TryHashFinal(Span<Byte>, Int32) |
Tenta finalizar o cálculo do hash depois de os últimos dados terem sido processados pelo algoritmo de hash. |
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. |