То, что вы пытаетесь достичь, очень похоже на этот вопрос .В идеале вы не хотите хранить эти секреты в базе данных, вы хотите хранить их как можно дальше от своего приложения.Зачем?Потому что таким образом вы можете по крайней мере исключить само приложение как поверхность для атаки, и получить доступ к этим паролям будет намного сложнее.
В вашем случае вы хотите защитить ключи шифрования паролем.Это означает, что вы должны где-то хранить пароль.Должны ли вы снова зашифровать этот пароль?Это приводит к порочному циклу - это то, что я имел в виду в этом разделе ответа:
... Что приводит нас к этому ресурсу.Это действительно проблема курицы и яйца с хранилищами ключей и паролями.Единственное действительно чистое решение - вводить пароли вручную при каждом запуске приложения / базы данных.Но это, как правило, реальная проблема (подумайте о сбое посреди ночи), поэтому люди склонны хранить пароли в текстовом файле в файловой системе.Это приемлемо, если вы следуете некоторым рекомендациям: ...
Если вы что-то зашифруете, значит, существует секретный ресурс, включающий ключ.Как указано в цитате, идеальный способ сохранить это в тайне - запомнить его и ввести вручную, чтобы не оставить его следов.Поскольку это часто не поддается управлению, вам приходится жить с чем-то менее безопасным, чем запоминание, но лучше, чем хранить секрет в открытом тексте.
Те же рекомендации, что и в этом посте, применимы к вашему делу в отношении хранения секретного пароля в файле.В качестве альтернативы вы можете попробовать использовать средства безопасного хранения ОС, такие как Защита данных Windows .