Django 密钥生成器

Django 密钥生成器 — 在您的设备上生成,从未传输。

Django SECRET_KEY

Paste into your .env:

 

这会使用 Django 自己的 get_random_secret_key() 使用的相同字母生成一个 50 个字符的 SECRET_KEY,因此您得到的结果与运行管理命令没有什么区别。它由您的浏览器的 CSPRNG 生成,并且不会传输到任何地方。

常见问题解答

在网站上生成密钥安全吗?

它就在这里,因为没有任何内容被传输。密钥由您自己的浏览器内的 crypto.getRandomValues 生成(与您的操作系统使用的加密生成器相同),并且永远不会接触网络。您可以断开互联网连接,该页面仍然有效,这是证明这一点的最简单方法。

Django 使用 SECRET_KEY 做什么?

它对会话 cookie、密码重置令牌、CSRF 令牌以及您的应用程序生成的任何签名数据进行签名。任何知道它的人都可以伪造会话并以任何用户身份登录,这就是为什么它绝不能提交版本控制或在登台和生产之间共享的原因。

我应该为每个环境使用不同的密钥吗?

是的。开发、登台和制作都必须有自己的密钥。共享意味着任何地方的泄漏都会导致任何地方的泄露,并且它允许在生产环境中重放在暂存阶段铸造的代币。

密钥应该存储在哪里?

在环境变量或机密管理器中,绝不在源代码控制中。在第一次提交之前将 .env 文件添加到 .gitignore — 一旦秘密存在于 git 历史记录中,稍后将其删除并不会泄露它,并且必须轮换密钥。

这适用于 Windows、Mac、iPhone 和 Android 吗?

是的。它可以在 Windows、Mac、Linux、iPhone 和 Android 上的任何现代浏览器中运行,无需安装任何内容,也无需帐户。 Chrome、Edge、Firefox 和 Safari 均受支持。