Если вы внимательно посмотрите на dumps
method in signing.py
, вы увидите, что он принимает ключ в качестве ключа подписи:
Если ключ не является None, settings.SECRET_KEY используется вместо этого.
def dumps(obj, key=None, salt='django.core.signing', serializer=JSONSerializer, compress=False):
"""
Returns URL-safe, sha1 signed base64 compressed JSON string. If key is
None, settings.SECRET_KEY is used instead.
If compress is True (not the default) checks if compressing using zlib can
save some space. Prepends a '.' to signify compression. This is included
in the signature, to protect against zip bombs.
Salt can be used to namespace the hash, so that a signed string is
only valid for a given namespace. Leaving this at the default
value or re-using a salt value across different parts of your
application without good cause is a security risk.
The serializer is expected to return a bytestring.
"""
Так все, что вам нужно сделать, это пройти различные секретные ключи вокруг каждый раз:
SECRET_KEY = "abc"
print signing.dumps("value", key=SECRET_KEY)
SECRET_KEY = "123"
print signing.dumps("value", key=SECRET_KEY)
Тем не менее, это выглядит как плохая идея для меня, так как вы не подписания контракта с по умолчанию ключ. Если вам действительно нужно подписать тексты, используйте Signer class
для создания и создания объектов с новыми key
и используйте его как Signer(key="NEW KEY")
.
Вы также можете установить ключ, используя: signer = Signer ('my-other-secret'). – jbiz