有谁知道哪个签名算法用于RSACryptoServiceProvider.SignHash?我相信它是RSAPKCS1,还是安全吗?
有没有人想过将RSASSA-PSS配置为RSACryptoServiceProvider的签名算法而不使用像BouncyCastle这样的第三方库?
提前致谢。
RSACryptoServiceProvider
只能做PKCS-1签名。
在.NET 4.6中,在RSA基类上添加了一组新方法,它们添加了一个RSASignaturePadding
参数。 RSACng
类可以通过RSASignaturePadding.Pss
值进行RSASSA-PSS(PSS与MGF-1,MGF消化和PSS消化都是消息摘要,盐大小是摘要大小)。
.NET 4.6还为从证书中获取密钥增加了更好的类型安全性,新方法很可能会返回RSACng:
using (RSA privateKey = cert.GetRSAPrivateKey())
{
return privateKey.SignHash(hash, HashAlgorithmName.SHA256, RSASignaturePadding.Pss);
}