簡體   English   中英

在 C# 中使用 RSA/ECB/OAEPWithSHA-1AndMGF1Padding 加密

[英]Encrpyt with RSA/ECB/OAEPWithSHA-1AndMGF1Padding in C#

我需要在 C# .NET 4.7.2 中加密一些文本,我需要使用的密碼是 RSA/ECB/OAEPWithSHA-1AndMGF1Padding。 然而,內置的 C# 類RSACryptoServiceProvider似乎沒有 MGF1 填充。

如何使用公鑰和 RSA/ECB/OAEPWithSHA-1AndMGF1Padding 進行加密?

我目前擁有的代碼:

var cert = new X509Certificate2('path to certificate');
var rsa = cert.PublicKey.Key as RSACryptoServiceProvider;
var dataToEncrypt = ASCIIEncoding.ASCII.GetBytes(data);
var encryptedByteArray = rsa.Encrypt(dataToEncrypt, true).ToArray();

return Convert.ToBase64String(encryptedByteArray);
RSA rsa = ...;
byte[] encrypted = rsa.Encrypt(data, RSAEncryptionPadding.OaepSha1);

MGF-1 是迄今為止 RFC 定義的唯一掩碼生成函數,因此它是隱含的。

另外,盡量避免直接使用 RSACryptoServiceProvider。 如果您使用的是舊版本並且必須這樣做,那么將true傳遞給其fOAEP參數與從新重載請求 OaepSha1 相同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM