Расшифровка файла с использованием MD5CryptoServiceProvider, TripleDESCryptoServiceProvider и ICryptoTransform - PullRequest
0 голосов
/ 12 декабря 2018

Кто-нибудь знаком с использованием MD5CryptoServiceProvider, TripleDESCryptoServiceProvider и ICryptoTransform? введите описание изображения здесь Я успешно зашифровал файл и записал его с StreamWriter в текстовый файл, но возникают проблемы при чтении файла с помощью StreamReader и попытке расшифровать текст.

В сообщении об ошибке утверждается, что «ввод не является допустимой строкой Base-64, так как содержит неосновной 64-символ, более двух символов заполнения или недопустимый символ среди символов заполнения».

Файл был зашифрован с использованием следующего кода:

string datetime = DateTime.Now.ToString();
string hash = (encrypted file here);
byte[] data = UTF8Encoding.UTF8.GetBytes(hash);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(hash));
using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
{
ICryptoTransform transforms = tripDes.CreateEncryptor();
byte[] results = transforms.TransformFinalBlock(data, 0, data.Length);hash = Convert.ToBase64String(results, 0, results.Length);
}

Код дешифрования выглядит следующим образом:

byte[] data = Convert.FromBase64String(text source here);
using (MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider())
{
byte[] keys = md5.ComputeHash(UTF8Encoding.UTF8.GetBytes(text source here));
using (TripleDESCryptoServiceProvider tripDes = new TripleDESCryptoServiceProvider() { Key = keys, Mode = CipherMode.ECB, Padding = PaddingMode.PKCS7 })
{
ICryptoTransform transforms = tripDes.CreateDecryptor();
byte[] results = transforms.TransformFinalBlock(data, 0, data.Length);
(text source here) = UTF32Encoding.UTF8.GetString(results);
}
}

Я пробовал его со всеми параметрами заполнения, чтобыбезрезультатно.Любые идеи, предложения или обоснованные предположения о том, как решить проблему?

Известно ли, что StreamWriter добавляет дополнительные символы в зашифрованный текст, вызывающий эту проблему?Если да, то какой метод вы рекомендуете для шифрования и дешифрования файла в C #?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...