Где хранить ключ шифрования при шифровании в 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

Более подробную информацию можно найти здесь

Вернуться на верх