Узнайте, как подписывать и не подписывать содержимое в нескольких строках кода Django
В современном цифровом ландшафте безопасность данных стала важнейшим аспектом любого приложения.
В связи с растущей потребностью в защите конфиденциальной информации шифрование стало жизненно важным инструментом обеспечения безопасности и приватности данных. Эти данные могут включать широкий спектр конфиденциальной информации, такой как пригласительные коды, адреса электронной почты, имена пользователей и другую личную информацию, которой не следует делиться с пользователями в виде обычного текста.
Использование шифрования позволяет нам зашифровывать эти данные, делая их нечитаемыми для кого-либо без соответствующего ключа шифрования. Этот дополнительный уровень безопасности необходим для поддержания доверия наших пользователей, а также для соблюдения различных правовых и нормативный требований к защите данных. В результате шифрование стало неотъемлемой частью разработки современных приложений, и ожидается, что в будущем его использование будет только расширяться.
К счастью, Django предоставляет ряд служебных функций, позволяющих нам шифровать и расшифровывать данные нескольких типов — str, int, list, dictionary.
Как сгенерировать секретный ключ в Django
Django предоставляет утилиту для генерации секретных ключей. IT
from django.core.management.utils import get_random_secret_key
print(get_random_secret_key())
Как зашифровать и расшифровать данные в Django
Класс A. Signer
Модуль в Django под названием signing имеет служебный класс Signer. Класс дает нам возможность предоставить любой ключ шифрования, который мы хотим, а затем использовать его для шифрования поддерживаемых типов данных.
from django.core import signing
def encrypt(raw_str: str, encryption_key: str) -> str:
# takes in any encryption key (i.e. salt), and uses it to encrypt some object
signer = signing.Signer(salt=encryption_key)
return signer.sign_object(raw_str)
def decrypt(encoded_str: str, encryption_key: str) -> str:
# takes in any encryption key (i.e. salt), and uses it to decrypt a token
signer = signing.Signer(salt=encryption_key)
try:
return signer.unsign_object(encoded_str)
except signing.BadSignature:
raise ValueError(f"Unable to decode hash {encoded_str}")
B. написание.dumps() и signing.loads()
Django дополнительно абстрагирует шифрование, предоставляя два метода dumps и loads, которые внутренне выбирают SECRET_KEY, указанный в settings.py создайте файл, а затем выполните операции шифрования с указанным ключом шифрования.
from django.core import signing
def encrypt(raw_str: str):
# Picks the `SECRET_KEY` provided in settings.py
return signing.dumps(raw_str)
def decrypt(raw_str: str):
# Picks the `SECRET_KEY` provided in settings.py
return signing.loads(raw_str)
Вот и все, подписание и отмена подписи в Django упрощены.
Не забудьте лайкнуть, поделиться и подписаться, если вы нашли эту статью полезной. Спасибо!