.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);
}