【发布时间】:2014-08-07 10:34:47
【问题描述】:
有人知道RSACryptoServiceProvider.SignHash 使用哪种签名算法吗?我相信它是 RSAPKCS1,它仍然安全吗?
有没有人知道将 RSASSA-PSS 配置为 RSACryptoServiceProvider 的签名算法,而不使用像 BouncyCastle 这样的第三方库?
提前致谢。
【问题讨论】:
标签: c# rsa digital-signature
有人知道RSACryptoServiceProvider.SignHash 使用哪种签名算法吗?我相信它是 RSAPKCS1,它仍然安全吗?
有没有人知道将 RSASSA-PSS 配置为 RSACryptoServiceProvider 的签名算法,而不使用像 BouncyCastle 这样的第三方库?
提前致谢。
【问题讨论】:
标签: c# rsa digital-signature
RSACryptoServiceProvider 只能做 PKCS-1 签名。
在 .NET 4.6 中,在 RSA 基类中添加了一组新方法,其中添加了 RSASignaturePadding 参数。 RSACng 类可以通过RSASignaturePadding.Pss 值进行 RSASSA-PSS(带有 MGF-1 的 PSS,MGF 摘要和 PSS 摘要都是消息摘要,盐大小是摘要大小)。
.NET 4.6 还为从证书获取密钥添加了更好的类型安全性,并且新方法很可能会返回 RSACng:
using (RSA privateKey = cert.GetRSAPrivateKey())
{
return privateKey.SignHash(hash, HashAlgorithmName.SHA256, RSASignaturePadding.Pss);
}
【讨论】: