2

在这里,我尝试将新行插入数据库中的表中。

def insert_record():
    values = input('Enter values ').replace(' ', '').split(sep=',')
    values[-1] = f"{f.encrypt(values[-1].encode())}"
    c.execute("INSERT INTO credentials VALUES (?, ?, ?)", values)
    conn.commit()
    conn.close()

我加密了最后一个参数values[-1],因为它将是一个密码。当我尝试解密它时

    for item in values:
    print(f.decrypt(item[-1]))

我得到:

Traceback (most recent call last):
TypeError: token must be bytes

我尝试了很多东西,但我已经被困了几个小时。我无法摆脱错误。

4

1 回答 1

3

请通过在字符串中添加b将类型从字符串转换为字节。看看下面的例子:

>>> from cryptography.fernet import Fernet
>>> key = Fernet.generate_key()
>>> f = Fernet(key)
>>> token = f.encrypt(b"my deep dark secret")
>>> token
b'...'
>>> f.decrypt(token)
b'my deep dark secret'
于 2020-08-08T10:03:22.377 回答