.net RSACryptoServiceProvider支持哈希算法

本文关键字:算法 哈希 支持 RSACryptoServiceProvider net | 更新日期: 2023-09-27 18:19:49

我有35字节的散列需要签名。但当我试着用SHA1 唱的时候

var rsa = new RSACryptoServiceProvider();
rsa.SignHash(hash, "SHA1");

我得到错误"坏散列"(显然),因为SHA1摘要大小是20。

现在除了支持SHA1之外,还有其他哈希算法吗。用于安装

rsa.SignHash(hash, "SHA224");

.net RSACryptoServiceProvider支持哈希算法

我不知道有任何输出为35字节的哈希函数。SHA-224是28个字节。

使用SignHash()-方法时,将使用PKCS#1 v.1.5对哈希进行签名。这个签名的一部分是指定使用了哪个哈希的信息,所以如果你的哈希不是SHA-1哈希,你不应该试图通过指定SHA-1(同样是SHA-225)对其进行签名

如果你想对35字节的哈希进行签名,你可以考虑用一个受支持的哈希函数来重新哈希:

rsa.SignData(hash, HashAlgorithm.Create("SHA256"));

为了回答您的实际问题:以下是.NET4中支持的哈希算法列表。