Не возвращает исходную строку - C#
Формулировка задачи:
Ещё один пример из Шилдта. Задача была переделать слово для шифрования с типа int в тип string. Не пойму как можно разрешить данный вопрос. можете подсказать ошибки?
string msg = "Совершенно секретно. Алексу Юстасу"; string encmsg = ""; string decmsg = ""; string key = "pyramida"; int k; Console.WriteLine("Первоначальное сообщение"); Console.WriteLine(msg); Console.Write("Шифрование сообщения"); for (int i = 0; i < msg.Length; i++) { for (k = 0; k < key.Length; k++) encmsg = encmsg + (char)(msg[i] ^ key[k]); if (encmsg.Length >= msg.Length) break; } Console.WriteLine(encmsg); Console.WriteLine("Расшифровка сообщения"); for (int i = 0; i < msg.Length; i++) { for (k = 0; k < key.Length; k++) decmsg = decmsg + (char)(encmsg[i] ^ key[k]); if (decmsg.Length >= msg.Length) break; } Console.WriteLine("\n" + decmsg); Console.Read();
Решение задачи: «Не возвращает исходную строку»
textual
Листинг программы
using System; using System.IO; using System.Linq; using System.Text; namespace shild03 { class Program { static void Main(string[] args) { Encryption enc = new Encryption(); string msg = "Совершенно секретно. Алексу Юстасу"; enc.Text = msg; Console.WriteLine($"{enc.NewText}"); enc.Text = enc.NewText; Console.WriteLine($"{enc.NewText}"); using (StreamReader reader = new StreamReader (File.Open(@"E:\Encryption.txt", FileMode.OpenOrCreate), Encoding.BigEndianUnicode)) { enc.Text = reader.ReadToEnd() ?? msg; if (string.IsNullOrWhiteSpace(enc.Text)) enc.Text = msg; } using (StreamWriter writer = new StreamWriter (File.Open(@"E:\Encryption.txt", FileMode.OpenOrCreate), Encoding.BigEndianUnicode)) { writer.Write(enc.NewText); } Console.ReadKey(false); } } class Encryption { public string Key { get; set; } = "pyramida"; public string Text { get; set; } public string NewText => new string(Text.ToCharArray() .Select((c, i) => (char)(~c ^ Key[i % (Key.Length - 1)])) .ToArray()); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д