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