c# - C# 中的 RSASSA-PSS

标签 c# rsa digital-signature

有谁知道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/

相关文章:

c# - WPF 消息框显示错误消息

java - 为什么我无法使用 keytool 和 RSA 生成 key ?

java 签名 "hash values do not match"

javascript - 使用 RSA 解密字符串

python - 如何从文件中将公共(public) RSA key 加载到 Python-RSA 中?

java - iText 和数字签名

java - 在 Java 中对 Web-http 响应进行数字签名(使用 pgp)

c# - async/await 更改后,使用 Dispatcher.Invoke() 不能解决除 Dispatcher 线程以外的 CollectionView 更改

c# - 如何从 Azure Functions v2 中的请求正文获取图像数据并转换为 Stream

c# - 尝试使用 XDocument 和 XmlSchemaSet 从 xml 模式在 C# 中创建 xml