Где хранить ключ шифрования при шифровании в Django?
Я создаю сайт с помощью Django, мой сайт будет шифровать загруженные файлы, а другой пользователь сможет загрузить файлы в незашифрованном виде.
Шифрование в python довольно простое (я использую библиотеку cryptography python), но где мне хранить ключ шифрования?
Я шифрую файлы в случае, если база данных или исходный код были скомпрометированы. Тогда я не смогу хранить ключ шифрования в виде файла или в базе данных.
Я исследовал довольно много, но в Интернете нет ничего об этом, мне отчаянно нужна помощь, поскольку я ничего не знаю о шифровании.
Этот вопрос также может включать любой сайт, созданный на основе любого программного обеспечения, это не обязательно должен быть Django.
Где я могу хранить ключ шифрования?
Вы можете создать файл .env
и хранить его в нем.
Я бы рекомендовал вам сделать то же самое для вашего SECRET_KEY
в настройках
Вы можете сделать что-то вроде этого (чуть ниже импорта в верхней части вашего файла (будь то настройки / представления или что-то другое):
#pip install environs is required
from environs import Env
env = Env()
env.read_env()
#
# some code here
#
SECRET_KEY = env.str("SECRET_KEY")
И ваш .env
будет выглядеть примерно так:
SECRET_KEY=VerySecretKey
ENCRYPTION_KEY=SomeEncryptionKey
Более подробную информацию можно найти здесь