Итак, у меня в базе данных Postgres есть поле типа bytea
. Я знаю расшифрованное значение, а также ключ, но не могу понять, как перейти от этого необработанного значения базы данных к расшифрованной строке. Я считаю, что ищу алгоритм, который Django использует для дешифрования этих значений, и как я могу использовать его для шифрования другой строки. Django предположительно использует пакет Keyczar, в котором упоминается использование пакета Crypter
для шифрования / дешифрования вещей. Я не могу установить этот пакет, поэтому не знаю, как go об этом по-другому.
В конечном итоге я хочу обновить значение в поле EncryptedCharField в своей базе данных, поскольку оно недействительно больше - есть ли способ получить это зашифрованное значение онлайн или в пределах Python?
, добавив соответствующий код. Передается много параметров и объектов, поэтому, надеюсь, вам не составит труда следовать приведенному ниже коду:
# How the field is getting read from Postgres:
server_password = EncryptedCharField(null=True, max_length=255)
# Get some other settings info from another table:
settings = SourceSystemSettings.objects.get(school=school, source_system=SourceSystem.objects.VENDOR)
# Setting up the pysftp connection object:
SourceFTP(hosts=[settings.server_host, SERVER_INTERNAL],
user=settings.server_user,
password=settings.server_password,
directory=settings.server_dir)
# Connecting using the password and other settings:
connection = pysftp.Connection(host, username=user, password=password, cnopts=cnopts)