哈希和签名算法

以下算法计算 哈希数字签名。 Microsoft Base、Strong 和 Enhanced 加密提供程序支持其中每一种算法。 这些算法的内部详细信息超出了本文档的范围。 有关其他源的列表,请参阅 有关加密的其他文档

算法 说明
加密块链接 (CBC) MAC
Microsoft 提供程序 (CALG_MAC) 实现的算法之一是 块密码消息身份验证代码 (MAC) 。 此方法使用块密码加密基础数据,然后使用最后一个加密的块作为 哈希 值。 用于生成 MAC 的加密算法是在创建会话密钥时指定的算法。
HMAC
Microsoft 提供程序 (CALG_HMAC) 实现的算法。 此算法还使用 对称密钥 来创建 哈希,但比简单的 密码块链 (CBC) MAC 算法复杂。 它可以与任何迭代的加密哈希算法(如 MD5 或 SHA-1)一起使用。 有关详细信息,请参阅 创建 HMAC
MD2、MD4 和 MD5
这些哈希算法全部由 RSA Data Security, Inc 开发。这些算法是按顺序开发的。 这三个值都会生成 128 位哈希值。 众所周知,这三者都有弱点,只应在出于兼容性目的需要时才使用。 对于新代码,建议使用 SHA-2 系列哈希。
这些算法是众所周知的,可以在任何有关 加密的参考中详细查看。
消息身份验证代码 (MAC)
MAC 算法类似于 哈希 算法,但使用 对称 (会话) 密钥进行计算。 需要原始 会话密钥 才能重新计算哈希值。 重新计算的哈希值用于验证基本数据是否未更改。 这些算法有时称为键式哈希算法。 若要查看哪些 Microsoft 提供程序支持 MAC,请参阅 Microsoft 加密服务提供程序
安全哈希算法 (SHA-1)
这种哈希算法由 国家标准与技术研究所 (NIST) 和国家安全局 (国家安全局) 开发。 此算法开发用于 DSA (数字签名算法) 或 DSS (数字签名标准) 。 此算法生成 160 位 哈希 值。 众所周知,SHA-1 存在弱点,应仅在出于兼容性目的需要时才使用。 对于新代码,建议使用 SHA-2 系列哈希。
安全哈希算法 - 2 (SHA-2)
这种哈希算法由 国家标准与技术研究所 (NIST) 和国家安全局 (国家安全局) 开发为 SHA-1 的后续算法。 它有四个变体(SHA-224、SHA-256、SHA-384 和 SHA-512),这些变体根据其输出中的位数命名。 其中,SHA-256、SHA-384 和 SHA-512 是在 Microsoft AES 加密提供程序中实现的。
SSL3 客户端授权算法
此算法用于 SSL3 客户端身份验证。 在 SSL3 协议中,MD5 哈希和 SHA 哈希串联使用 RSA 私钥进行签名。 CryptoAPI 2.0 和 Microsoft Base 和增强加密提供程序通过 哈希 类型CALG_SSL3_SHAMD5支持此功能。 有关详细信息,请参阅 创建CALG_SSL3_SHAMD5哈希