Безопасность по неизвестности !
Если ваш веб-сервер скомпрометирован, то злоумышленник может получить доступ к ключу независимо от того, где он хранится - поскольку код должен быть в состоянии найти ключ для выполнения шифрования / дешифрования - и код объясняет, где он находит ключ. Единственный сценарий, в котором это добавляет реальную ценность, заключается в защите данных вне приложения (например, на резервной ленте). Однако, поскольку вы ставите под угрозу способность СУБД оптимизировать запросы и создавать гораздо больший объем данных для такой цели, как резервное копирование, имеет гораздо больше смысла шифровать резервную копию или файловую систему, а не отдельные элементы данных.
Даже если вы используете ключи, которые не хранятся в вашем приложении постоянно (например, пароль базовой аутентификации HTTP, предоставляемый через SSL), все еще существует большой риск того, что данные будут скомпрометированы - и у вас возникнут проблемы с обменом данными между разными пользователями.
Чтобы дать разумный ответ, нам нужно знать, что представляет собой модель угрозы и есть ли у вас внешние ограничения, такие как PCI-DSS