Python 将django settings.SECRET\u密钥转换为不同的大小

Python 将django settings.SECRET\u密钥转换为不同的大小,python,django,Python,Django,在my django settings.py文件中,有: SECRET_KEY = '1qpps_5yf@e_++wwicusr*8#lm)^m=rjhgk#&qq1w*p*2d3c4z' 我需要一些函数来将这个字符串(它可以是任何字符串,假设它不是空的)转换为短/长字符串。我的意思是我需要钥匙,但例如长度=16。如果SECRET_KEY长于16,则很容易将其子串,但如果它较短,则我不想用一些constatnt字符“填充”缺少的值 所以我需要一个函数,它接受长度大于0的字符串,

在my django settings.py文件中,有:

SECRET_KEY = '1qpps_5yf@e_++wwicusr*8#lm)^m=rjhgk#&qq1w*p*2d3c4z'
我需要一些函数来将这个字符串(它可以是任何字符串,假设它不是空的)转换为短/长字符串。我的意思是我需要钥匙,但例如长度=16。如果SECRET_KEY长于16,则很容易将其子串,但如果它较短,则我不想用一些constatnt字符“填充”缺少的值

所以我需要一个函数,它接受长度大于0的字符串,并生成长度为16的键。更简单的是:我需要密钥生成器,它将根据一些种子生成16个字符的字符串(seed=SECRET\u key)

编辑--------------------

在这里找到了很好的解决方案:


我希望在django应用程序中,
random.seed(settings.SECRET\u KEY)
不是大的安全整体:p

您可以散列任何值,并从中获取16个字节:

>>> import hashlib
>>> hashlib.md5("123").digest()
' ,\xb9b\xacY\x07[\x96K\x07\x15-#Kp'
您还没有说字符串中可以接受哪些字符,这将为您提供任意字节值

>>> import hashlib
>>> hashlib.md5("123").digest()
' ,\xb9b\xacY\x07[\x96K\x07\x15-#Kp'