Я исследовал проблему, возникающую при попытке расшифровки с помощью библиотек Rijndael C #.Я пробовал несколько решений, которые были опубликованы здесь, но ни одно из них не работает или не применяется.
Проблема: я пытаюсь расшифровать HTTP-запрос, отправленный с какого-либо оборудования.Однако я не получаю HTTP-запрос, преобразованный в правильное количество байтов, которое соответствует моим методам расшифровки (я думаю, что это проблема?).
Вот мой код:
System.Text.Encoding enc = System.Text.Encoding.ASCII;
System.Text.Encoding req = System.Text.Encoding.ASCII;
if (curContext != null)
{
string decrypted = "";
int totalBytes = curContext.Request.TotalBytes;
StreamReader sr = new StreamReader(curContext.Request.InputStream);
string request = sr.ReadToEnd();
if (!String.IsNullOrEmpty(request))
{
using (RijndaelManaged myRijndael = new RijndaelManaged())
{
myRijndael.Mode = CipherMode.ECB;
myRijndael.Padding = PaddingMode.None;
byte[] key = enc.GetBytes(WebConfigurationManager.AppSettings["32B"].ToString());
myRijndael.KeySize = 256;
myRijndael.Key = key;
decrypted = DecryptStringFromBytes(req.GetBytes(request), myRijndael.Key);
}
}
}
И метод расшифровки:
static string DecryptStringFromBytes(byte[] cipherText, byte[] Key)
{
using (RijndaelManaged rijAlg = new RijndaelManaged())
{
rijAlg.Key = Key;
rijAlg.Mode = CipherMode.ECB;
rijAlg.Padding = PaddingMode.None;
// Create a decrytor to perform the stream transform.
ICryptoTransform decryptor = rijAlg.CreateDecryptor();
// Create the streams used for decryption.
using (MemoryStream msDecrypt = new MemoryStream(cipherText))
{
using (CryptoStream csDecrypt = new CryptoStream(msDecrypt, decryptor, CryptoStreamMode.Read))
{
using (StreamReader srDecrypt = new StreamReader(csDecrypt))
{
// Read the decrypted bytes from the decrypting stream
// and place them in a string.
plaintext = srDecrypt.ReadToEnd();
}
}
}
}
}
На srDecrypt.ReadToEnd () я получаю сообщение об ошибке, указанное в заголовке.
Я довольно новичок в этом, поэтому я не уверенгде я иду не так.Любой совет будет принят во внимание.Спасибо ~!