Храните и извлекайте зашифрованные двоичные данные с помощью GridDB, используя криптографическую библиотеку Python.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Храните и извлекайте зашифрованные двоичные данные с помощью GridDB, используя криптографическую библиотеку Python.

Сообщение Anonymous »

Я работаю с установкой GridDB и хочу защитить ее от будущих угроз квантовых вычислений, внедрив постквантовое шифрование. Я начал с тестирования базовой интеграции с использованием зашифрованного хранилища данных с библиотекой шифрования и GridDB. Вот мой код:

Код: Выделить всё

from cryptography.fernet import Fernet
import griddb_python as griddb

# Generate encryption key
key = Fernet.generate_key()
cipher_suite = Fernet(key)

# Sample data encryption
data = "Quantum Safe Data"
encrypted_data = cipher_suite.encrypt(data.encode())

# Initialize GridDB connection
factory = griddb.StoreFactory.get_instance()
try:
gridstore = factory.get_store(
host="localhost", port=10001, cluster_name="defaultCluster",
username="admin", password="admin"
)
container_name = "quantum_test"
conInfo = griddb.ContainerInfo(
name=container_name,
column_info_list=[["id", griddb.Type.INTEGER],
["data", griddb.Type.STRING]],
type=griddb.ContainerType.COLLECTION, row_key=True)

container = gridstore.put_container(conInfo)
container.set_auto_commit(False)

# Storing encrypted data
row = [1, encrypted_data]
container.put_row(row)
container.commit()

# Retrieve and decrypt data
query = container.query("select *")
rs = query.fetch()
while rs.has_next():
row = rs.next()
decrypted_data = cipher_suite.decrypt(row[1]).decode()
print("Decrypted Data:", decrypted_data)

except griddb.GSException as e:
print("GridDB Error:", e)
Проблема:
При запуске приведенного выше кода возникает следующая ошибка:

Код: Выделить всё

Traceback (most recent call last):
File "griddb_encryption_test.py", line 32, in 
decrypted_data = cipher_suite.decrypt(row[1]).decode()
File "/path/to/python/site-packages/cryptography/fernet.py", line 117, in decrypt
timestamp, data = Fernet._get_unverified_token_data(token)
File "/path/to/python/site-packages/cryptography/fernet.py", line 166, in _get_unverified_token_data
raise TypeError("token must be bytes")
TypeError: expected bytes-like object, not str
Как следует обрабатывать зашифрованные двоичные данные в контейнерах GridDB? Должен ли я преобразовывать данные для хранения/извлечения по-другому, чтобы избежать подобных проблем?

Подробнее здесь: https://stackoverflow.com/questions/791 ... yptography
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»