Шифрование пароля в Delphi - PullRequest
       235

Шифрование пароля в Delphi

17 голосов
/ 25 сентября 2008

Мне нужно хранить пароли базы данных в конфигурационном файле. По понятным причинам я хочу зашифровать их (желательно с помощью AES). Кто-нибудь знает реализацию Delphi, которую легко внедрить в существующий проект с> 10 000 строк исторически выросшего (URGH!) Исходного кода?

Уточнение: Легко означает добавление единицы в проект, добавление макс. 5 строк кода, где файл конфигурации читается и с ним можно покончить. Не должно занимать более 15 минут.

Еще одно уточнение: пароль необходим для создания соединения с БД, а не для поддержки схемы управления пользователями для приложения. Так что использование хешей не помогает. ДБ проверяет действительность пароля, а не приложение.

Ответы [ 15 ]

1 голос
/ 26 сентября 2008

Просто напоминание.

Если вам не нужно взаимодействовать с другими крипто-библиотеками, то DCP или LockBox выполнят эту работу.

НО

если вам нужно, чтобы он полностью соответствовал спецификациям rinjdael, забудьте о бесплатных компонентах, они в большинстве случаев "паршивые".

0 голосов
/ 14 сентября 2017

Простая, но для большинства приложений достаточно сильная система представлена ​​в этой демонстрации Embarcadero: https://edn.embarcadero.com/article/28325

0 голосов
/ 13 октября 2010

Вам нужно хранить его в месте, где только текущий пользователь тоже имеет доступ.

В основном есть два способа сделать это:

  1. Сохраните его в зашифрованном EFS файле .
  2. Сохраните его в безопасном локальном хранилище .

Internet Explorer использует 2. Но если вы можете получить локальный доступ, вы можете расшифровать оба 1. и 2., если у вас есть правильный главный ключ и алгоритм (например, iepv может получить в Интернете Пароли исследователя).

Итак:
Если можете, не храните пароли.
Сначала найдите альтернативы (такие как проверка подлинности Windows, службы каталогов и т. Д.)

- Йерун

0 голосов
/ 13 октября 2010

Пара решений:

  • Не храните пароль вообще. Если База данных поддерживает интегрированный аутентификация, используйте его. Процесс может быть установлен для запуска с определенным идентичность и быть автоматически аутентифицировано базой данных
  • Используйте хранилища сертификатов Windows и сертификат для шифрования вашего пароля. Если вы храните ключ, используемый для шифрования ваш пароль в вашем приложении, в любом случае у вас очень мало безопасности, Вы также должны защитить ключ.
0 голосов
/ 25 сентября 2008

Ник, конечно, прав - я просто предполагаю, что вы знаете, что делаете, когда говорите, что хотите потратить все 15 минут на внедрение решения безопасности. Библиотека DCPCrypt также реализует ряд алгоритмов хеширования, если вы решите пойти этим (лучшим) путем.

...