Ответ 1
Здравый смысл говорит, что если злоумышленник получит доступ к вашей базе данных, у них, скорее всего, также будет доступ к вашей файловой системе. Это действительно сводится к вам. Например, вы можете скрыть это. В файлах конфигурации, в простых файлах где-то в файловой системе, зашифруйте его другим ключом, находящимся внутри приложения... и т.д. И т.д.
Конфигурационные файлы являются логическим ответом, но зачем рисковать - смешайте его. Не стесняйтесь смешивать ключи с многоуровневыми шифрованиями - нужно что-то требовать от самой записи и быть уникальным для каждой записи, другая требует значения конфигурации, третья - для конкретного приложения и, возможно, четвертая из скрытой библиотеки хорошо в ваших ссылках на заявку? Таким образом, даже если один слой каким-то образом скомпрометирован, у вас будет несколько других, защищающих его.
Да, он добавляет лишние накладные расходы. Да, это относительно дорого. Но стоит ли вам иметь конфиденциальные данные, такие как данные кредитной карты пользователя? Вы ставите, что это так.
Я использую аналогичные методы шифрования и хэширования в одном из моих личных проектов для домашних животных, которые сосредоточены на высокой безопасности и тщательно контролируются. Это зависит от того, сколько данных вам нужно отображать в любой момент времени - например, моя всегда будет извлекать только 10 записей за раз, скорее всего, даже меньше.
... Чтобы указать, что я имею в виду, смешивая: Шифруйте один раз. Затем снова зашифруйте эти данные с помощью другого ключа и, по-видимому, другого алгоритма.