Как и где хранить конфиденциальные данные - C#
Формулировка задачи:
Доброго времени суток.
Возможно по заголовку вы посудили, что тема заезженная, но меня интересует несколько другой аспект данного вопроса.
У меня имеется некое приложение, которое в ходе работы генерирует\изменяет информацию некоторую. Эту информацию необходимо сохранять на устройстве (компуктере).
Сохранение данных произвожу через XML-сериализацию (все работает, все хорошо).
Но вот одно
Не нужно быть
но
: Информация, которая сохраняется на устройстве, должна быть недоступна для посторонних глаз (например файлик с логинами и паролями для приложения ). Запись в обычный текстовик такой информации для меня является каким-то слишком не продуманным шагом, посему и полез в XML. Но XML же в свою очередь не гарантирует полной конфиденциальности внутренней информации файла (если открыть файл обычным блокнотом, то можно найти необходимые фрагменты).Точнее
: У меня в XML сохраняется List, содержащий объекты с двумя свойствами (UserName, UserPassword). По закрытию приложения в XML файле можно увидеть такое:яяяя NMAS.Stuff.PassContainer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null %MAS.Stuff.PassContainer.Objects.Users List`1+_items List`1+_sizeList`1+_version &MAS.Stuff.PassContainer.Objects.User[] $MAS.Stuff.PassContainer.Objects.User $MAS.Stuff.PassContainer.Objects.User userNameuserPassword test test
хацкером
, чтобы догадаться об аккаунте с данными test (логин и пароль). Есть ли вариант сохранения данных с предотвращением "подглядывания"? (Чтобы данные нельзя было узреть или они были нечитабельны). Спасибо.Решение задачи: «Как и где хранить конфиденциальные данные»
textual
Листинг программы
public T Load<T>(string path, string password8) { var key = Encoding.ASCII.GetBytes(password8); var vector = Encoding.ASCII.GetBytes(IV); using (var dec = new DESCryptoServiceProvider().CreateDecryptor(key, vector)) using (var fs = new FileStream(path, FileMode.Open)) if (fs.Length == 0) return default(T); else using (var cs = new CryptoStream(fs, dec, CryptoStreamMode.Read)) return (T)new BinaryFormatter().Deserialize(cs); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д