有谁知道RSACryptoServiceProvider.SignHash用的是什么签名算法? ?我相信它是 RSAPKCS1,它仍然安全吗?
有没有人想过在不使用 BouncyCaSTLe 等第三方库的情况下将 RSASSA-PSS 配置为 RSACryptoServiceProvider 的签名算法?
提前致谢。
最佳答案
RSACryptoServiceProvider
只能进行 PKCS-1 签名。
在 .NET 4.6 中,在 RSA 基类上添加了一组新方法,其中添加了一个 RSASignaturePadding
参数。 RSACng
类可以通过RSASignaturePadding.Pss
值做RSASSA-PSS(PSS with MGF-1,MGF digest和PSS digest都是消息摘要,salt size是摘要大小)。
.NET 4.6 还为从证书中获取 key 添加了更好的类型安全性,新方法很可能会返回 RSACng:
using (RSA privateKey = cert.GetRSAPrivateKey())
{
return privateKey.SignHash(hash, HashAlgorithmName.SHA256, RSASignaturePadding.Pss);
}
关于c# - C# 中的 RSASSA-PSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24263388/