HMACSHA1 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用 SHA1 哈希函数计算基于哈希的消息身份验证代码(HMAC)。
public ref class HMACSHA1 : System::Security::Cryptography::HMAC
public ref class HMACSHA1 : System::Security::Cryptography::KeyedHashAlgorithm
public class HMACSHA1 : System.Security.Cryptography.HMAC
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
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
type HMACSHA1 = class
inherit HMAC
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
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
- 继承
- 继承
- 属性
注解
HMACSHA1 是从 SHA-1 哈希函数构造并用作 HMAC 或基于哈希的消息身份验证代码的键控哈希算法。 HMAC 进程将机密密钥与消息数据混合,使用哈希函数对结果进行哈希处理,再次将哈希值与密钥混合,然后再次应用哈希函数。 输出哈希长度为 160 位。
如果发送方和接收方共享了密钥,HMAC 可用于确定通过不安全通道发送的消息是否已被篡改。 发送方计算原始数据的哈希值,并将原始数据和哈希值作为单个消息发送。 接收方重新计算收到的消息上的哈希值,并检查计算的 HMAC 是否与传输的 HMAC 匹配。
对数据或哈希值所做的任何更改都会导致不匹配,因为需要了解密钥才能更改消息并重现正确的哈希值。 因此,如果原始哈希值和计算的哈希值匹配,则会对消息进行身份验证。
SHA-1(安全哈希算法,也称为 SHS,安全哈希标准)是由美国政府发布的加密哈希算法。 它从任意长度字符串生成 160 位哈希值。
HMACSHA1 接受任何大小的键,并生成长度为 160 位的哈希序列。
由于 SHA-1 冲突问题,Microsoft建议使用 SHA-256。
构造函数
| 名称 | 说明 |
|---|---|
| HMACSHA1() |
使用随机生成的密钥初始化类的新实例 HMACSHA1 。 |
| HMACSHA1(Byte[], Boolean) |
已过时.
使用指定的键数据初始化类的新实例 HMACSHA1 ,并指定是否使用 SHA-1 算法的托管版本的值。 |
| HMACSHA1(Byte[]) |
使用指定的键数据初始化类的新实例 HMACSHA1 。 |
字段
| 名称 | 说明 |
|---|---|
| HashSizeInBits |
HMAC SHA-1 算法生成的哈希大小(以位为单位)。 |
| HashSizeInBytes |
HMAC SHA-1 算法生成的哈希大小(以字节为单位)。 |
| HashSizeValue |
表示计算哈希代码的大小(以位为单位)。 (继承自 HashAlgorithm) |
| HashValue |
表示计算的哈希代码的值。 (继承自 HashAlgorithm) |
| KeyValue |
在哈希算法中使用的密钥。 (继承自 KeyedHashAlgorithm) |
| State |
表示哈希计算的状态。 (继承自 HashAlgorithm) |
属性
| 名称 | 说明 |
|---|---|
| BlockSizeValue |
获取或设置要在哈希值中使用的块大小。 (继承自 HMAC) |
| CanReuseTransform |
获取一个值,该值指示是否可以重复使用当前转换。 (继承自 HashAlgorithm) |
| CanTransformMultipleBlocks |
在派生类中重写时,获取一个值,该值指示是否可以转换多个块。 (继承自 HashAlgorithm) |
| Hash |
获取计算的哈希代码的值。 (继承自 HashAlgorithm) |
| HashName |
获取或设置用于哈希的哈希算法的名称。 |
| HashName |
获取或设置用于哈希的哈希算法的名称。 (继承自 HMAC) |
| HashSize |
获取计算 HMAC 的大小(以位为单位)。 |
| HashSize |
获取计算哈希代码的大小(以位为单位)。 (继承自 HashAlgorithm) |
| InputBlockSize |
在派生类中重写时,获取输入块大小。 (继承自 HashAlgorithm) |
| Key |
获取或设置在哈希算法中使用的密钥。 |
| Key |
获取或设置 HMAC 计算中使用的密钥。 (继承自 HMAC) |
| OutputBlockSize |
在派生类中重写时,获取输出块大小。 (继承自 HashAlgorithm) |
方法
显式接口实现
| 名称 | 说明 |
|---|---|
| IDisposable.Dispose() |
释放由托管资源使用 HashAlgorithm 的非托管资源,并选择性地释放托管资源。 (继承自 HashAlgorithm) |