[英]RSA/ECB/OAEPWITHSHA-256ANDMGF1PADDING in C# Bouncy Castle - input too large for RSA cipher
[英]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.