HashAlgorithm Klas

Definitie

Vertegenwoordigt de basisklasse waaruit alle implementaties van cryptografische hash-algoritmen moeten worden afgeleid.

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
Overname
HashAlgorithm
Afgeleid
Kenmerken
Implementeringen

Voorbeelden

In het volgende codevoorbeeld wordt de SHA256 hash voor een matrix berekend. In dit voorbeeld wordt ervan uitgegaan dat er een vooraf gedefinieerde bytematrix dataArray[]is. SHA256 is een afgeleide klasse van HashAlgorithm.

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

Opmerkingen

Hash-functies zijn fundamenteel voor moderne cryptografie. Met deze functies worden binaire tekenreeksen van een willekeurige lengte toegewezen aan kleine binaire tekenreeksen van een vaste lengte, ook wel hash-waarden genoemd. Een cryptografische hash-functie heeft de eigenschap dat het rekenkundig onfeaseerbaar is om twee afzonderlijke invoer te vinden die hash naar dezelfde waarde heeft. Hash-functies worden vaak gebruikt met digitale handtekeningen en voor gegevensintegriteit.

De hash wordt gebruikt als een unieke waarde van vaste grootte die een grote hoeveelheid gegevens vertegenwoordigt. Hashes van twee gegevenssets moeten overeenkomen als de bijbehorende gegevens ook overeenkomen. Kleine wijzigingen in de gegevens resulteren in grote onvoorspelbare wijzigingen in de hash.

Vanwege conflictproblemen met SHA-1 raadt Microsoft een beveiligingsmodel aan op basis van SHA-256 of beter.

Notities voor uitvoerders

Wanneer u de HashAlgorithm klasse overschrijft, moet u de volgende leden overschrijven: HashCore(Byte[], Int32, Int32) en HashFinal().

Constructors

Name Description
HashAlgorithm()

Initialiseert een nieuw exemplaar van de HashAlgorithm klasse.

Velden

Name Description
HashSizeValue

Vertegenwoordigt de grootte, in bits, van de berekende hash-code.

HashValue

Vertegenwoordigt de waarde van de berekende hash-code.

State

Vertegenwoordigt de status van de hash-berekening.

Eigenschappen

Name Description
CanReuseTransform

Hiermee wordt een waarde opgehaald die aangeeft of de huidige transformatie opnieuw kan worden gebruikt.

CanTransformMultipleBlocks

Wanneer deze wordt overschreven in een afgeleide klasse, krijgt u een waarde die aangeeft of meerdere blokken kunnen worden getransformeerd.

Hash

Hiermee haalt u de waarde op van de berekende hash-code.

HashSize

Hiermee haalt u de grootte, in bits, van de berekende hash-code op.

InputBlockSize

Wanneer deze wordt overschreven in een afgeleide klasse, haalt u de grootte van het invoerblok op.

OutputBlockSize

Wanneer deze wordt overschreven in een afgeleide klasse, haalt u de grootte van het uitvoerblok op.

Methoden

Name Description
Clear()

Alle resources die door de HashAlgorithm klasse worden gebruikt, worden vrijgegeven.

ComputeHash(Byte[], Int32, Int32)

Berekent de hashwaarde voor de opgegeven regio van de opgegeven bytematrix.

ComputeHash(Byte[])

Berekent de hashwaarde voor de opgegeven bytematrix.

ComputeHash(Stream)

Berekent de hashwaarde voor het opgegeven Stream object.

Create()

Hiermee maakt u een exemplaar van de standaard implementatie van een hash-algoritme.

Create(String)

Hiermee maakt u een exemplaar van de opgegeven implementatie van een hash-algoritme.

Dispose()

Alle resources die door het huidige exemplaar van de HashAlgorithm klasse worden gebruikt, worden vrijgegeven.

Dispose(Boolean)

Publiceert de niet-beheerde resources die worden gebruikt door de HashAlgorithm beheerde resources en brengt eventueel de beheerde resources vrij.

Equals(Object)

Bepaalt of het opgegeven object gelijk is aan het huidige object.

(Overgenomen van Object)
GetHashCode()

Fungeert als de standaardhashfunctie.

(Overgenomen van Object)
GetType()

Hiermee haalt u de Type huidige instantie op.

(Overgenomen van Object)
HashCore(Byte[], Int32, Int32)

Wanneer deze worden overschreven in een afgeleide klasse, worden gegevens die naar het object zijn geschreven, gerouteerd naar het hash-algoritme voor het berekenen van de hash.

HashCore(ReadOnlySpan<Byte>)

Hiermee worden gegevens die naar het object zijn geschreven, gerouteerd naar het hash-algoritme voor het berekenen van de hash.

HashFinal()

Wanneer deze wordt overschreven in een afgeleide klasse, voltooit u de hashberekening nadat de laatste gegevens zijn verwerkt door het cryptografische hash-algoritme.

Initialize()

Hiermee stelt u het hash-algoritme opnieuw in op de oorspronkelijke status.

MemberwiseClone()

Hiermee maakt u een ondiepe kopie van de huidige Object.

(Overgenomen van Object)
ToString()

Retourneert een tekenreeks die het huidige object vertegenwoordigt.

(Overgenomen van Object)
TransformBlock(Byte[], Int32, Int32, Byte[], Int32)

Berekent de hashwaarde voor de opgegeven regio van de invoer bytematrix en kopieert de opgegeven regio van de invoer bytematrix naar de opgegeven regio van de uitvoer-bytematrix.

TransformFinalBlock(Byte[], Int32, Int32)

Berekent de hashwaarde voor de opgegeven regio van de opgegeven bytematrix.

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

Hiermee wordt geprobeerd de hash-waarde voor de opgegeven bytematrix te berekenen.

TryHashFinal(Span<Byte>, Int32)

Pogingen om de hash-berekening te voltooien nadat de laatste gegevens zijn verwerkt door het hash-algoritme.

Expliciete interface-implementaties

Name Description
IDisposable.Dispose()

Publiceert de niet-beheerde resources die worden gebruikt door de HashAlgorithm beheerde resources en brengt eventueel de beheerde resources vrij.

Van toepassing op

Zie ook