HMACSHA1 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
使用 SHA1 哈希函数计算基于哈希值的消息验证代码 (HMAC)。
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
- 继承
- 继承
- 属性
注解
HMACSHA1 是一种键控哈希算法,它由 SHA1 哈希函数构造,用作 HMAC 或基于哈希的消息身份验证代码。 HMAC 进程将密钥与消息数据混合,使用哈希函数对结果进行哈希处理,再次将哈希值与机密密钥混合,然后第二次应用哈希函数。 输出哈希的长度为 160 位。
HMAC 可用于确定通过不安全通道发送的消息是否已被篡改,前提是发送方和接收方共享密钥。 发送方计算原始数据的哈希值,并将原始数据和哈希值作为单个消息发送。 接收方重新计算收到的消息上的哈希值,并检查计算的 HMAC 是否与传输的 HMAC 匹配。
对数据或哈希值的任何更改都会导致不匹配,因为需要知道密钥才能更改消息并重现正确的哈希值。 因此,如果原始哈希值和计算的哈希值匹配,则会对消息进行身份验证。
SHA-1 (安全哈希算法,也称为 SHS,安全哈希标准) 是美国政府发布的加密哈希算法。 它从任意长度字符串生成 160 位哈希值。
HMACSHA1 接受任何大小的密钥,并生成长度为 160 位的哈希序列。
由于与 SHA1 冲突,Microsoft 建议使用 SHA256。
构造函数
HMACSHA1() |
使用随机生成的密钥初始化 HMACSHA1 类的新实例。 |
HMACSHA1(Byte[]) |
使用指定的密钥数据初始化 HMACSHA1 类的新实例。 |
HMACSHA1(Byte[], Boolean) |
已过时.
使用指定的密钥数据和一个指定是否使用 SHA1 算法托管版本的值,来初始化 HMACSHA1 类的新实例。 |
字段
HashSizeInBits |
HMAC SHA1 算法生成的哈希大小(以位为单位)。 |
HashSizeInBytes |
HMAC SHA1 算法生成的哈希大小(以字节为单位)。 |
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) |