|
|
||||||
Как и где хранить конфиденциальные данные26.11.2015, 18:58. Показов 2524. Ответов 8
Метки нет (Все метки)
Доброго времени суток, уважаемые форумчане.
Возможно по заголовку вы посудили, что тема заезженная, но меня интересует несколько другой аспект данного вопроса. У меня имеется некое приложение, которое в ходе работы генерирует\изменяет информацию некоторую. Эту информацию необходимо сохранять на устройстве (компуктере). Сохранение данных произвожу через XML-сериализацию (все работает, все хорошо). Но вот одно но: Информация, которая сохраняется на устройстве, должна быть недоступна для посторонних глаз (например файлик с логинами и паролями для приложения ).Запись в обычный текстовик такой информации для меня является каким-то слишком не продуманным шагом, посему и полез в XML. Но XML же в свою очередь не гарантирует полной конфиденциальности внутренней информации файла (если открыть файл обычным блокнотом, то можно найти необходимые фрагменты). Точнее: У меня в XML сохраняется List, содержащий объекты с двумя свойствами (UserName, UserPassword). По закрытию приложения в XML файле можно увидеть такое: Кликните здесь для просмотра всего текста
Не нужно быть хацкером, чтобы догадаться об аккаунте с данными test (логин и пароль). Есть ли вариант сохранения данных с предотвращением "подглядывания"? (Чтобы данные нельзя было узреть или они были нечитабельны). Спасибо.
0
|
||||||
| 26.11.2015, 18:58 | |
|
Ответы с готовыми решениями:
8
где хранить текст файлы? или как хранить данные? Учет прихода и ухода. Как и где хранить данные Как и где лучше хранить данные для их добавления, удаления и редактирования |
|
|
|
| 19.12.2015, 17:26 [ТС] | |
|
skilllab, А можно по конкретнее насчет алгоритма?
Если я правильно понял, то следует сериализовать данные, потом перезаписывать файлик с помощью шифратора; а при загрузке данных - перезаписывать файл с результатами дешифратора. Верно?
0
|
|
|
|
|
| 19.12.2015, 17:29 | |
|
Всё верно, только шифрование и дешифрование выполняйте прямо в приложении.
К примеру: сериализуйте в XML, потом зашифруйте, всё в byte[] и в файл. При загрузке обратная последовательность. На диске шифрованный файл так пускай и лежит.
1
|
|
|
|
||||||||||||||||
| 19.01.2016, 01:16 [ТС] | ||||||||||||||||
|
skilllab, Попробовал реализовать идею с помощью DESCryptoServiceProvider
Кликните здесь для просмотра всего текста
Если я правильно понял. Сохранение файла
1. Сериализация данных в файл
2. Чтение файла 3. Шифрование данных 4. Перезапись файла с шифрованными данными Загрузка файла
1. Чтение шифрованных данных 2. Дешифровка 3. Запись в файл дешифрованных данных (в новый временный файл) 4. Десериализация из временного файла 5. Удаление временного файла Если такая идея правильная, то у меня проблемы некоторые возникают. Во время шифрование некоторые символы ошибочно шифруются\дешифруются, что потом вызывает ошибки десериализации: (Ниже исходный файл и файл, прошедший шифровку и дешифровку) Файл
яяяя NMAS.Stuff.PassContainer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null %MAS.Stuff.PassContainer.Objects.Users
List`1+_itemsList`1+_sizeList`1+_version &MAS.Stuff.PassContainer.Objects.User[] $MAS.Stuff.PassContainer.Objects.User $MAS.Stuff.PassContainer.Objects.User userNameuserPassword test test Шифрованный файл
���� NMAS.Stuff.PassContainer, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null %MAS.Stuff.PassContainer.Objects.Users
List`1+_itemsList`1+_sizeList`1+_version &MAS.Stuff.PassContainer.Objects.User[] $MAS.Stuff.PassContainer.Objects.User $MAS.Stuff.PassContainer.Objects.User userNameuserPassword test test Вот моя сериализация и десериализация: Кликните здесь для просмотра всего текста
Serialization
Deserialization
Добавлено через 2 минуты Такой подход (с временным файлом) выбрал по причине того, что после дешифрования можно получить поток, где уже дешифрованные данные лежат, но BinaryFormatter ругается на то, что ему хочется получить Stream тип, а не StreamReader. ![]() Добавлено через 7 минут Затупил конкретно я. Если работать со строками - будут ошибки при различных символов, а если с массивом байт работать проблем не будет - верно рассуждаю? ![]() Добавлено через 11 минут 1223
0
|
||||||||||||||||
|
Ушел с форума
|
||
| 19.01.2016, 08:54 | ||
|
Windows Data Protection https://msdn.microsoft.com/en-... 95355.aspx ProtectedData Class https://msdn.microsoft.com/en-... .110).aspx How to: Use Data Protection https://msdn.microsoft.com/en-... .110).aspx Если коротко: DPAPI - это шифрование, использующее в качестве ключа учетные данные пользователя (пароль). Расшифровать их может только тот, кто знает твой пароль на вход в Windows, и сделать это можно только на том же самом компьютере, где они были зашифрованы. Сброс/смена пароля не поможет. Используется в Chrome, IE и других программах для защиты приватных данных от посторонних глаз.
0
|
||
|
|
|||||||
| 19.01.2016, 11:18 | |||||||
3
|
|||||||
|
|
|||||||
| 19.01.2016, 19:09 [ТС] | |||||||
|
Storm23,
Попробовал таким образом: Кликните здесь для просмотра всего текста
Пишет ошибку криптографическую, хотя там её и не должно быть. Вроде как должно возвращаться null. В моем варианте T - ObservableCollection<Account>, который допускает тип null (проверил в другом месте). Тут же конструкция return default(T); выдает cryptographicexception , хотя почему её? Там же (в блоке else) ничего с криптографией не связано.не могли бы вы помочь с усовершенствованием блока когда, чтобы возвращал null, если файл пустой.
0
|
|||||||
|
|
|||||||
| 19.01.2016, 20:05 | |||||||
|
Но если уж так хотите, то вот так:
1
|
|||||||
| 19.01.2016, 20:05 | |
|
Помогаю со студенческими работами здесь
9
Где хранить и как выводить данные
Как и где лучше хранить текстовые данные Как добавлять в друзья и вообще где хранить данные? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|
|
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
|
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
|
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут.
В век Веб все очень привыкли к дизайну Single-Page-Application .
Быстренько разберем подход "на фреймах".
Мы делаем одну. . .
|
Фото: Daniel Greenwood
kumehtar 13.11.2025
|
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга,
Ты же видел моря и метели.
Как сменялись короны и стяги,
Как эпохи стрелою летели.
- Этот мир — это крылья и горы,
Снег и пламя, любовь и тревоги,
И бескрайние. . .
|