Использую пример отсюда 3DES. Немного переделал, и не могу понять в чем ошибка. Данные шифрует, но не хочет дешифрировать(данные берутся из файла).
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Security.Cryptography;
namespace _1._3_3DESC
{
class Program
{
static void Main(string[] args)
{
while (true)
{
try
{
// Create a new TripleDESCryptoServiceProvider object
// to generate a key and initialization vector (IV).
TripleDESCryptoServiceProvider tDESalg = new TripleDESCryptoServiceProvider();
int n;
Console.WriteLine("1. Зашифровать файл: ");
Console.WriteLine("2. Дешифвровать файл: ");
Console.WriteLine("3 Выход: ");
n = int.Parse(Console.ReadLine());
switch (n)
{
case 1:
//Шифрование
EncryptTextToFile(tDESalg.Key, tDESalg.IV);
break;
case 2:
//Дешифрование
string Final = DecryptTextFromFile(tDESalg.Key, tDESalg.IV);
Console.WriteLine(Final);
break;
case 3:
Environment.Exit(0);
break;
default:
Console.WriteLine("Не правильный ввод");
break;
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
public static void EncryptTextToFile(byte[] Key, byte[] IV)
{
try
{
Console.WriteLine("Введите имя файла");
String FileName;
String Data;
FileName = Console.ReadLine();
Console.WriteLine("Введите текст для шифрования ");
Data = Console.ReadLine();
// Create or open the specified file.
FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);
// Create a CryptoStream using the FileStream
// and the passed key and initialization vector (IV).
CryptoStream cStream = new CryptoStream(fStream,
new TripleDESCryptoServiceProvider().CreateEncryptor(Key, IV),
CryptoStreamMode.Write);
// Create a StreamWriter using the CryptoStream.
StreamWriter sWriter = new StreamWriter(cStream);
// Write the data to the stream
// to encrypt it.
sWriter.WriteLine(Data);
// Close the streams and
// close the file.
sWriter.Close();
cStream.Close();
fStream.Close();
}
catch (CryptographicException e)
{
Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("A file access error occurred: {0}", e.Message);
}
}
public static string DecryptTextFromFile(byte[] Key, byte[] IV)
{
try
{
Console.WriteLine("Введите имя файла");
String FileName;
FileName = Console.ReadLine();
// Create or open the specified file.
FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);
// Create a CryptoStream using the FileStream
// and the passed key and initialization vector (IV).
CryptoStream cStream = new CryptoStream(fStream,
new TripleDESCryptoServiceProvider().CreateDecryptor(Key, IV),
CryptoStreamMode.Read);
// Create a StreamReader using the CryptoStream.
StreamReader sReader = new StreamReader(cStream);
// Read the data from the stream
// to decrypt it.
string val = sReader.ReadLine();
// Close the streams and
// close the file.
sReader.Close();
cStream.Close();
fStream.Close();
// Return the string.
return val;
}
catch (CryptographicException e)
{
Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
return null;
}
catch (UnauthorizedAccessException e)
{
Console.WriteLine("A file access error occurred: {0}", e.Message);
return null;
}
}
}
}
Появляется ошибка
Вызвано исключение: "System.Security.Cryptography.CryptographicException" в mscorlib.dll
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Здравствуйте, при попытке записать PHP код в файл через file_put_contentsНичего не происходит, спит 3 минуты и пишет TIME OUT
Разбираюсь с этим фреймворкомНе могу понять как правильно сделать отложенную загрузку