Я понимаю, что ответ на этот вопрос, скорее всего, вполне очевиден (хотя и несколько неудобен для меня), но я надеюсь, что у кого-нибудь найдется гениальное решение.
В свободное время я потихоньку создаю приложение, которое, надеюсь, будет полезно на работе. Это простое приложение для отслеживания результатов рецензирования. По сути, я просто пытаюсь научить себя C#.
Моя проблема в том, что, поскольку я действительно не могу ничего установить, и я не могу использовать свой собственный веб-сайт для этого (две причины - 1) Министерство обороны, вероятно, не разрешит это, 2) я хочу, чтобы это был рабочий стол (WinForms ), а не Web), я использую Jet (например, Access) в качестве хранилища данных.
Мне нужен способ защитить базу данных от посторонних глаз, поскольку есть некоторые вещи, которые я действительно хочу иметь только для пользователя уровня администратора (например, руководителя группы). Я в основном решил установить пароль базы данных. Пароль будет выбран во время установки, использован для защиты базы данных, а затем зашифрован для того, чтобы приложение могло подобрать, расшифровать и использовать для открытия соединений с базой данных.
Моя проблема в том, что я хочу, чтобы этот код был несколько общедоступным. В конечном итоге я хочу опубликовать свой код на своем веб-сайте и попросить StackOverflow и, возможно, сабреддит по программированию для некоторых быстрых обзоров и идей. Думайте об этом как о программе наставничества для бедных. Для обслуживания, особенно после того, как я уйду с этой работы, исходный код в конечном итоге будет доступен моим коллегам. Если у них есть доступ к зашифрованному «ключевому файлу» и источнику, они смогут определить пароль базы данных.
Есть ли способ закодировать это так, чтобы даже с файлом и кодом мои коллеги не смогли попасть в БД? Я предполагаю, что нет, но стоит кое-что спросить.
Если нет способа сделать это, я думаю, что мой второй вариант — изменить шифрование, когда я размещаю его на своем сайте (изменить шифрование, эквивалентное хэшу — IV? — на что-то другое при публикации), и предоставить источник в защищенный паролем rar-файл, давая пароль только управлению.
Любые идеи?