Как скрыть пароль базы данных в конфигурационном файле
Я работаю над проектом C++, которому нужен доступ к базе данных для чтения ее входных данных.
До сих пор мы использовали имя пользователя по умолчанию (postgres) и пароль с фиксированным открытым текстом, хранящиеся вместе со многими другими настройками в файле конфигурации на основе xml.
Теперь мне нужно скрыть пароль от пользователей, когда я предоставляю файл конфигурации.
К вашему сведению: область разработки Linux, база данных postgresql. мы хотели бы дать пользователям файл конфигурации для подключения к базе данных и использовать его, не зная пароля
Буду признателен, если вы предложите быструю и простую ссылку.(Небольшой материал для чтения также будет здорово)
благодарю вас
3 ответа
Вы не можете помешать злонамеренному пользователю получить этот пароль тем или иным образом, если вы отправите ему программу, содержащую его в любой форме.
Но есть два возможных решения:
Пользователь и пароль, поставляемые с программой, имеют доступ только для чтения к базе данных;
Программа не подключается напрямую к базе данных. Он запрашивает данные в серверном приложении, которое может не только извлечь эти данные из фактической базы данных без необходимости предоставлять пользователю какой-либо пароль, но также может выполнить надлежащие проверки безопасности, чтобы гарантировать, что этот пользователь имеет доступ только к тем данным, для которых он предназначен и т. Д.
Вы можете иметь другой "жестко закодированный" пароль, используемый для шифрования пароля в файле конфигурации. Таким образом, вы записываете зашифрованный пароль базы данных (db_password) в файл конфигурации, а затем, когда вам необходимо получить доступ к базе данных, вы дешифруете db_password с помощью вашего жестко закодированного пароля. Конечно, восстановить пароль можно, например, с помощью декомпилятора, но это будет нелегко.
Мы используем MD5 для шифрования пароля в файле конфигурации.