【问题标题】:RSACryptoServiceProvider decrypting with ECB and MGF1 paddingRSACryptoServiceProvider 使用 ECB 和 MGF1 填充进行解密
【发布时间】:2018-01-04 12:18:42
【问题描述】:

我正在使用 System.Security.Cryptography 包中的 RSACryptoServiceProvider。我需要使用我的私钥解密来自 Android 应用程序的一些输入。它使用 RSA/ECB/OAEPWithSHA256AndMGF1Padding 算法在 Java 代码中对其进行加密。
    问题是我找不到任何方法来设置填充 MGFT1ECB您能帮我吗?这些设置是默认设置还是我应该使用其他库?很难相信这是不可能的。

我的代码的关键部分在这里:

RSAParameters RSAParamPrivateKey = DotNetUtilities.ToRSAParameters(privateKey)
RSACryptoServiceProvider csp = new RSACryptoServiceProvider();
csp.ImportParameters(RSAParamPrivateKey);

return csp.Decrypt(encryptedAESKey, RSAEncryptionPadding.OaepSHA256);

【问题讨论】:

    标签: c# .net encryption cryptography rsacryptoserviceprovider


    【解决方案1】:

    “欧洲央行”(希望)毫无意义。 RSA 只能用于一个数据块。

    MGF1 是唯一标准定义的 MGF,因此 .NET 目前不允许您指定它。

    使用除 SHA-1 以外的算法的 OAEP 超出了RSACryptoServiceProvider 的能力。但是RSACng可以做到:

    RSAParameters RSAParamPrivateKey = DotNetUtilities.ToRSAParameters(privateKey);
    RSA rsa = new RSACng();
    rsa.ImportParameters(RSAParamPrivateKey);
    
    return rsa.Decrypt(encryptedAESKey, RSAEncryptionPadding.OaepSHA256);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-02
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2021-02-04
      • 2013-03-20
      相关资源
      最近更新 更多