Страницы

Поиск по вопросам

пятница, 13 марта 2020 г.

Как зашифровать текст при записи в файл и расшифровывать его при открытии?

#c_sharp #шифрование


Пишу маленькую программу для чтения/записи текста. Первый раз с этим сталкиваюсь,
так как пока что я новичок в C#, хотелось бы посмотреть на простой пример. 

Сложные решение думаю пока что не смогу понять.
    


Ответы

Ответ 1



Спасибо за подсказки, по ним я нашел очень простой пример, правда нужно будет более детально в нем разобраться, но все же он очень простой. Шифруем текст, и записываем его в файл FileStream stream = new FileStream("C:\\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("Hello World!"); crStream.Write(data,0,data.Length); crStream.Close(); stream.Close(); Дешифруем текст и выводим результат дешифрации в консоль FileStream stream = new FileStream("C:\\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(); Console.WriteLine(data); Console.ReadKey(); reader.Close(); stream.Close(); Теперь осталось понять работу ключей, почитать мануал. что бы действительно понимать как все работает.

Ответ 2



Спасибо за хороший пример. Если вы хотите что бы корректно отображался кириллический текст то при записи следует немого изменить код при записи. var dstEncoding = Encoding.UTF8; FileStream stream = new FileStream("C:\\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 = dstEncoding.GetBytes("Hello World!"); crStream.Write(data,0,data.Length); crStream.Close(); stream.Close();

Комментариев нет:

Отправить комментарий