HMAC 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
表示基于哈希的消息验证代码 (HMAC) 的所有实现必须从中派生的抽象类。
public ref class HMAC abstract : System::Security::Cryptography::KeyedHashAlgorithmpublic abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithm[System.Runtime.InteropServices.ComVisible(true)]
public abstract class HMAC : System.Security.Cryptography.KeyedHashAlgorithmtype HMAC = class
    inherit KeyedHashAlgorithm[<System.Runtime.InteropServices.ComVisible(true)>]
type HMAC = class
    inherit KeyedHashAlgorithmPublic MustInherit Class HMAC
Inherits KeyedHashAlgorithm- 继承
- 派生
- 属性
注解
基于哈希的消息身份验证代码 (HMAC) 可用于确定通过不安全通道发送的消息是否已被篡改,前提是发送方和接收方共享密钥。 发送方计算原始数据的哈希值,并将原始数据和 HMAC 作为单个消息发送。 接收方重新计算收到的消息上的哈希值,并检查计算的哈希值是否与传输的哈希值匹配。
HMAC 可与任何迭代加密哈希函数(如 MD5 或 SHA-1)结合使用,并结合机密共享密钥。 HMAC 的加密强度取决于基础哈希函数的属性。
对数据或哈希值的任何更改都会导致不匹配,因为需要知道密钥才能更改消息并重现正确的哈希值。 因此,如果原始哈希值和计算的哈希值匹配,则会对消息进行身份验证。
由于 MD5 和 SHA-1 的冲突问题,Microsoft 建议使用基于 SHA-256 或更高版本的安全模型。
构造函数
| HMAC() | 初始化 HMAC 类的新实例。 | 
字段
| HashSizeValue | 表示计算所得的哈希代码的大小(以位为单位)。(继承自 HashAlgorithm) | 
| HashValue | 表示计算所得的哈希代码的值。(继承自 HashAlgorithm) | 
| KeyValue | 用于哈希算法的密钥。(继承自 KeyedHashAlgorithm) | 
| State | 表示哈希计算的状态。(继承自 HashAlgorithm) | 
属性
| BlockSizeValue | 获取或设置哈希值中使用的块大小。 | 
| CanReuseTransform | 获取一个值,该值指示是否可重复使用当前转换。(继承自 HashAlgorithm) | 
| CanTransformMultipleBlocks | 当在派生类中重写时,获取一个值,该值指示是否可以转换多个块。(继承自 HashAlgorithm) | 
| Hash | 获取计算所得的哈希代码的值。(继承自 HashAlgorithm) | 
| HashName | 获取或设置用于哈希计算的哈希算法的名称。 | 
| HashSize | 获取计算所得的哈希代码的大小(以位为单位)。(继承自 HashAlgorithm) | 
| InputBlockSize | 当在派生类中重写时,获取输入块的大小。(继承自 HashAlgorithm) | 
| Key | 获取或设置要在 HMAC 计算中使用的密钥。 | 
| OutputBlockSize | 当在派生类中重写时,获取输出块的大小。(继承自 HashAlgorithm) | 
方法
显式接口实现
| IDisposable.Dispose() | 释放由 HashAlgorithm 占用的非托管资源,还可以另外再释放托管资源。(继承自 HashAlgorithm) |