Генератор секретных ключей Flask

Генератор секретных ключей Flask — генерируется на вашем устройстве и никогда не передается.

Flask SECRET_KEY

Paste into your .env:

 

В результате получается 64 шестнадцатеричных символа — 32 случайных байта — именно то, что документация Flask рекомендует генерировать с помощью secrets.token_hex(32). Он поступает из криптографического случайного источника вашего браузера и никогда никуда не отправляется.

Часто задаваемые вопросы

Безопасно ли генерировать секретный ключ на веб-сайте?

Именно здесь, потому что ничего не передается. Ключ создается crypto.getRandomValues ​​внутри вашего браузера — того же криптографического генератора, который использует ваша операционная система — и никогда не затрагивает сеть. Вы можете отключиться от Интернета, и эта страница по-прежнему будет работать, и это самый простой способ доказать это.

Что сломается, если мой Flask SECRET_KEY протечет?

Сеансовые файлы cookie во Flask подписываются, а не шифруются этим ключом. Любой, кто владеет им, может как прочитать содержимое сеанса, так и создать действительный сеанс для любого пользователя — поэтому рассматривайте утечку как полный обход аутентификации и немедленно меняйте ее.

Должен ли я использовать разные ключи для каждой среды?

Да. Разработка, постановка и производство должны иметь свой собственный ключ. Совместное использование одного означает, что утечка в любом месте приведет к компрометации везде, и это позволяет токену, созданному на этапе подготовки, быть воспроизведено в производстве.

Где должен храниться ключ?

В переменной среды или диспетчере секретов, но никогда в системе контроля версий. Добавьте файл .env в .gitignore перед первым коммитом — как только секрет окажется в истории git, его последующее удаление не приведет к его утечке, и ключ необходимо поменять.

Работает ли это на Windows, Mac, iPhone и Android?

Да. Он работает в любом современном браузере на Windows, Mac, Linux, iPhone и Android, не требует установки и учетной записи. Поддерживаются Chrome, Edge, Firefox и Safari.