.NET 4.x Сохранение настроек приложения - C#

Узнай цену своей работы

Формулировка задачи:

Ребят, вот загуглил клевую тему Все работает хорошо, но у меня по специфике программа должна под паролем сохранять некоторые настройки.. А сейчас они храняться внезащищенном xml файле которые можно редактировать блокнотом! Как сделать чтобы он как то кодировался? или нужен другой метод?

Решение задачи: «.NET 4.x Сохранение настроек приложения»

textual
Листинг программы
        private void button1_Click(object sender, EventArgs e)
        {
            string path = Application.StartupPath + @"\file.xml";
            //ЗАПИСЬ
            //Создаем xml-файл
            XmlTextWriter writer = new XmlTextWriter(path, Encoding.Default);
            writer.Formatting = Formatting.Indented;
            writer.WriteStartElement("Stock");
            writer.WriteAttributeString("Symbol", "MSFT");
            writer.WriteElementString("Price", XmlConvert.ToString(74.125));
            writer.WriteElementString("Change", XmlConvert.ToString(5.89));
            writer.WriteElementString("Volume", XmlConvert.ToString(69020000));
            writer.WriteEndElement();
            writer.Close();
            //Кодируем (пароль для кодирования - CyberForum :)
            string codedText = Lock("CyberForum", File.ReadAllText(path));
            //Перезаписываем
            File.WriteAllText(path,codedText);
 
            //ЧТЕНИЕ
            //Считываем тект из файла и раскодирум
            string text = UnLock("CyberForum", File.ReadAllText(path));
            //Заполняем XmlTextReader
            XmlTextReader reader = new XmlTextReader(new MemoryStream(Encoding.Default.GetBytes(text)));
            //Читаем данные
            while (reader.Read())
            {
                //..................
            }
        }
        public string Lock(string psw, string text)
        {
            int summ = 0;
            char[] K = psw.ToCharArray();
            foreach (char Kc in K)
            {
                summ += (int)Kc;
            }
            char[] Ca = text.ToCharArray();
            for (int i = 0; i < Ca.Length; i++)
            {
                Ca[i] = (char)((int)Ca[i] + summ + i);
            }
            return new String(Ca);
        }
        public string UnLock(string psw, string text)
        {
            int summ = 0;
            char[] K = psw.ToCharArray();
            foreach (char Kc in K)
            {
                summ += (int)Kc;
            }
            char[] Ca = text.ToCharArray();
            for (int i = 0; i < Ca.Length; i++)
            {
                Ca[i] = (char)((int)Ca[i] - summ - i);
            }
            return new String(Ca);
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы