【问题标题】:RSASSA-PSS in C#C# 中的 RSASSA-PSS
【发布时间】:2014-08-07 10:34:47
【问题描述】:

有人知道RSACryptoServiceProvider.SignHash 使用哪种签名算法吗?我相信它是 RSAPKCS1,它仍然安全吗?

有没有人知道将 RSASSA-PSS 配置为 RSACryptoServiceProvider 的签名算法,而不使用像 BouncyCastle 这样的第三方库?

提前致谢。

【问题讨论】:

    标签: c# rsa digital-signature


    【解决方案1】:

    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);
    }
    

    【讨论】:

      猜你喜欢
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      相关资源
      最近更新 更多