Код: Выделить всё
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
Подробнее здесь: https://stackoverflow.com/questions/791 ... yptography