是否有一个在django中生成settings.SECRET_KEY的函数?

时间:2016-12-23 09:47:12

标签: django django-settings

我写了ansible-role for openwisp2以简化其部署,它是一系列django应用程序。为了尽可能地简化部署,我编写了一个简单的(可能是微不足道的)SECRET_KEY generator script,由ansible调用,以便在第一次运行ansible playbook时生成密钥。

现在,这工作正常但我认为它击败了Django生成强键的内置安全措施,这也非常难以猜测。

当时我查看其他方法,但没有找到太多,现在我想知道:是否有一个函数用于生成django中的settings.SECRET_KEY?

这样可以避免使用这种家庭烘焙解决方案,即使它们正常工作,但在安全性方面却无效。

4 个答案:

答案 0 :(得分:11)

实际上,当您拨打startproject django.core.management.utils.get_random_secret_key()时,您可以使用生成新密钥的相同功能。

但请注意,它与您的版本没有太大区别。

答案 1 :(得分:6)

在终端上运行以下命令。

$ python -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'

输出:

2x$e%!k_u_0*gq0s4!_u(2(^lpy&gir0hg)q&5nurj0-sseuav

答案 2 :(得分:2)

对于像我这样的懒人:

from django.core.management.utils import get_random_secret_key  
get_random_secret_key()

答案 3 :(得分:2)

我想补充一点,根据提交 Fixed #31757 -- Adjusted system check for SECRET_KEY to warn about autogenerated default keys,方法 get_random_secret_key() 被认为是不安全的。

如果您使用的是 python 3.6+,那么您可以使用 secrets.token_hex([nbytes=None]) 函数

python3 -c 'import secrets; print(secrets.token_hex(100))'

信用TLDR: Generate Django Secret Key