HMACSHA1 Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Computes a Hash-based Message Authentication Code (HMAC) using the SHA1 hash function.
public ref class HMACSHA1 : System::Security::Cryptography::HMAC
public ref class HMACSHA1 : System::Security::Cryptography::KeyedHashAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public class HMACSHA1 : System.Security.Cryptography.HMAC
public class HMACSHA1 : System.Security.Cryptography.HMAC
public class HMACSHA1 : System.Security.Cryptography.KeyedHashAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public class HMACSHA1 : System.Security.Cryptography.HMAC
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type HMACSHA1 = class
inherit HMAC
type HMACSHA1 = class
inherit HMAC
type HMACSHA1 = class
inherit KeyedHashAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type HMACSHA1 = class
inherit HMAC
Public Class HMACSHA1
Inherits HMAC
Public Class HMACSHA1
Inherits KeyedHashAlgorithm
- Inheritance
- Inheritance
- Attributes
Remarks
HMACSHA1 is a type of keyed hash algorithm that is constructed from the SHA1 hash function and used as an HMAC, or hash-based message authentication code. The HMAC process mixes a secret key with the message data, hashes the result with the hash function, mixes that hash value with the secret key again, and then applies the hash function a second time. The output hash is 160 bits in length.
An HMAC can be used to determine whether a message sent over an insecure channel has been tampered with, provided that the sender and receiver share a secret key. The sender computes the hash value for the original data and sends both the original data and hash value as a single message. The receiver recalculates the hash value on the received message and checks that the computed HMAC matches the transmitted HMAC.
Any change to the data or the hash value results in a mismatch, because knowledge of the secret key is required to change the message and reproduce the correct hash value. Therefore, if the original and computed hash values match, the message is authenticated.
The SHA-1 (Secure Hash Algorithm, also called SHS, Secure Hash Standard) is a cryptographic hash algorithm published by the United States Government. It produces a 160-bit hash value from an arbitrary length string.
HMACSHA1 accepts keys of any size, and produces a hash sequence that is 160 bits in length.
Due to collision problems with SHA1, Microsoft recommends SHA256.
Constructors
HMACSHA1() |
Initializes a new instance of the HMACSHA1 class with a randomly generated key. |
HMACSHA1(Byte[], Boolean) |
Obsolete.
Initializes a new instance of the HMACSHA1 class with the specified key data and a value that specifies whether to use the managed version of the SHA1 algorithm. |
HMACSHA1(Byte[]) |
Initializes a new instance of the HMACSHA1 class with the specified key data. |
Fields
HashSizeInBits |
The hash size produced by the HMAC SHA1 algorithm, in bits. |
HashSizeInBytes |
The hash size produced by the HMAC SHA1 algorithm, in bytes. |
HashSizeValue |
Represents the size, in bits, of the computed hash code. (Inherited from HashAlgorithm) |
HashValue |
Represents the value of the computed hash code. (Inherited from HashAlgorithm) |
KeyValue |
The key to use in the hash algorithm. (Inherited from KeyedHashAlgorithm) |
State |
Represents the state of the hash computation. (Inherited from HashAlgorithm) |
Properties
BlockSizeValue |
Gets or sets the block size to use in the hash value. (Inherited from HMAC) |
CanReuseTransform |
Gets a value indicating whether the current transform can be reused. (Inherited from HashAlgorithm) |
CanTransformMultipleBlocks |
When overridden in a derived class, gets a value indicating whether multiple blocks can be transformed. (Inherited from HashAlgorithm) |
Hash |
Gets the value of the computed hash code. (Inherited from HashAlgorithm) |
HashName |
Gets or sets the name of the hash algorithm to use for hashing. |
HashName |
Gets or sets the name of the hash algorithm to use for hashing. (Inherited from HMAC) |
HashSize |
Gets the size, in bits, of the computed HMAC. |
HashSize |
Gets the size, in bits, of the computed hash code. (Inherited from HashAlgorithm) |
InputBlockSize |
When overridden in a derived class, gets the input block size. (Inherited from HashAlgorithm) |
Key |
Gets or sets the key to use in the hash algorithm. |
Key |
Gets or sets the key to use in the HMAC calculation. (Inherited from HMAC) |
OutputBlockSize |
When overridden in a derived class, gets the output block size. (Inherited from HashAlgorithm) |
Methods
Clear() |
Releases all resources used by the HashAlgorithm class. (Inherited from HashAlgorithm) |
ComputeHash(Byte[], Int32, Int32) |
Computes the hash value for the specified region of the specified byte array. (Inherited from HashAlgorithm) |
ComputeHash(Byte[]) |
Computes the hash value for the specified byte array. (Inherited from HashAlgorithm) |
ComputeHash(Stream) |
Computes the hash value for the specified Stream object. (Inherited from HashAlgorithm) |
ComputeHashAsync(Stream, CancellationToken) |
Asynchronously computes the hash value for the specified Stream object. (Inherited from HashAlgorithm) |
Dispose() |
Releases all resources used by the current instance of the HashAlgorithm class. (Inherited from HashAlgorithm) |
Dispose(Boolean) |
This member overrides Dispose(Boolean), and more complete documentation might be available in that topic. Releases the unmanaged resources used by the KeyedHashAlgorithm and optionally releases the managed resources. |
Dispose(Boolean) |
Releases the unmanaged resources used by the HMAC class when a key change is legitimate and optionally releases the managed resources. (Inherited from HMAC) |
Equals(Object) |
Determines whether the specified object is equal to the current object. (Inherited from Object) |
Finalize() |
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. |
GetHashCode() |
Serves as the default hash function. (Inherited from Object) |
GetType() |
Gets the Type of the current instance. (Inherited from Object) |
HashCore(Byte[], Int32, Int32) |
Routes data written to the object into the SHA1 hash algorithm for computing the Hash-based Message Authentication Code (HMAC). |
HashCore(Byte[], Int32, Int32) |
When overridden in a derived class, routes data written to the object into the HMAC algorithm for computing the HMAC value. (Inherited from HMAC) |
HashCore(ReadOnlySpan<Byte>) |
Routes data written to the object into the HMAC algorithm for computing the HMAC. |
HashCore(ReadOnlySpan<Byte>) |
Routes data written to the object into the HMAC algorithm for computing the HMAC. (Inherited from HMAC) |
HashCore(ReadOnlySpan<Byte>) |
Routes data written to the object into the hash algorithm for computing the hash. (Inherited from HashAlgorithm) |
HashData(Byte[], Byte[]) |
Computes the HMAC of data using the SHA1 algorithm. |
HashData(Byte[], Stream) |
Computes the HMAC of a stream using the SHA1 algorithm. |
HashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>) |
Computes the HMAC of data using the SHA1 algorithm. |
HashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>) |
Computes the HMAC of data using the SHA1 algorithm. |
HashData(ReadOnlySpan<Byte>, Stream, Span<Byte>) |
Computes the HMAC of a stream using the SHA1 algorithm. |
HashData(ReadOnlySpan<Byte>, Stream) |
Computes the HMAC of a stream using the SHA1 algorithm. |
HashDataAsync(Byte[], Stream, CancellationToken) |
Asynchronously computes the HMAC of a stream using the SHA1 algorithm. |
HashDataAsync(ReadOnlyMemory<Byte>, Stream, CancellationToken) |
Asynchronously computes the HMAC of a stream using the SHA1 algorithm. |
HashDataAsync(ReadOnlyMemory<Byte>, Stream, Memory<Byte>, CancellationToken) |
Asynchronously computes the HMAC of a stream using the SHA1 algorithm. |
HashFinal() |
Finalizes the HMAC computation after the last data is processed by the algorithm. |
HashFinal() |
When overridden in a derived class, finalizes the HMAC computation after the last data is processed by the algorithm. (Inherited from HMAC) |
Initialize() |
Resets the hash algorithm to its initial state. |
Initialize() |
Initializes an instance of the default implementation of HMAC. (Inherited from HMAC) |
MemberwiseClone() |
Creates a shallow copy of the current Object. (Inherited from Object) |
ToString() |
Returns a string that represents the current object. (Inherited from Object) |
TransformBlock(Byte[], Int32, Int32, Byte[], Int32) |
Computes the hash value for the specified region of the input byte array and copies the specified region of the input byte array to the specified region of the output byte array. (Inherited from HashAlgorithm) |
TransformFinalBlock(Byte[], Int32, Int32) |
Computes the hash value for the specified region of the specified byte array. (Inherited from HashAlgorithm) |
TryComputeHash(ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Attempts to compute the hash value for the specified byte array. (Inherited from HashAlgorithm) |
TryHashData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32) |
Attempts to compute the HMAC of data using the SHA1 algorithm. |
TryHashFinal(Span<Byte>, Int32) |
Attempts to finalize the HMAC computation after the last data is processed by the HMAC algorithm. |
TryHashFinal(Span<Byte>, Int32) |
Attempts to finalize the HMAC computation after the last data is processed by the HMAC algorithm. (Inherited from HMAC) |
TryHashFinal(Span<Byte>, Int32) |
Attempts to finalize the hash computation after the last data is processed by the hash algorithm. (Inherited from HashAlgorithm) |
Explicit Interface Implementations
IDisposable.Dispose() |
Releases the unmanaged resources used by the HashAlgorithm and optionally releases the managed resources. (Inherited from HashAlgorithm) |