Я собираюсь использовать криптографическую библиотеку, такую как pycrypto, для шифрования / дешифрования полей в моем python webapp db. Но для алгоритмов шифрования требуется ключ. Если у меня есть незашифрованный ключ в моем источнике, кажется глупым пытаться зашифровать поля db, как на моем сервере, если у кого-то есть доступ к файлам db, они также будут иметь доступ к моему исходному коду python.
Есть ли лучший метод защиты используемого ключа? Или альтернативный метод шифрования полей базы данных (на уровне приложения, а не на уровне базы данных)?
ОБНОВЛЕНИЕ: поля, которые я пытаюсь защитить, являются токенами oauth.
ОБНОВЛЕНИЕ: Думаю, нет единого способа избежать этого. Я думаю, мне все равно нужно зашифровать поля, так как вполне вероятно, что файлы db будут скопированы и перемещены, поэтому, по крайней мере, я уменьшу проблему до одного уязвимого места - просмотрев свой исходный код.
ОБНОВЛЕНИЕ: токены oauth необходимо использовать для вызовов API, когда пользователь находится в автономном режиме, поэтому использование их пароля в качестве ключа в этом случае не подходит.