Простейшее шифрование при записи в файл - C#
Формулировка задачи:
Здравстуйте! Есть код, который шифрует и дешифрирует строчку сообщения. Не могу сообразить, что нужно сделать, чтобы записать в файл например 2 строчки?
void Enc(string [] str)
{
FileStream stream = new FileStream("mytext.txt", FileMode.OpenOrCreate, FileAccess.Write);
DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
CryptoStream crStream = new CryptoStream(stream,cryptic.CreateEncryptor(),CryptoStreamMode.Write);
byte[] data = ASCIIEncoding.ASCII.GetBytes(str[0]);
crStream.Write(data,0,data.Length);
crStream.Close();
stream.Close();
}
void Dec()
{
FileStream stream = new FileStream("mytext.txt",FileMode.Open,FileAccess.Read);
DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider();
cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
CryptoStream crStream = new CryptoStream(stream,cryptic.CreateDecryptor(),CryptoStreamMode.Read);
StreamReader reader = new StreamReader(crStream);
string data = reader.ReadToEnd();
reader.Close();
stream.Close();
}Решение задачи: «Простейшее шифрование при записи в файл»
textual
Листинг программы
void Enc(string [] lines)
{
using (FileStream stream = new FileStream("mytext.txt", FileMode.OpenOrCreate, FileAccess.Write))
using (DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider())
{
cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH");
var encoding = Encoding.GetEncoding("ASCII", EncoderFallback.ExceptionFallback, DecoderFallback.ExceptionFallback);
using (CryptoStream crStream = new CryptoStream(stream,cryptic.CreateEncryptor(),CryptoStreamMode.Write))
using (StreamWriter writer = new StreamWriter(crStream, encoding))
{
foreach (string s in lines.Take(2))
{
writer.WriteLine(s);
}
}
}
}