在这里,我尝试将新行插入数据库的表中。
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
我尝试了很多事情,但我已经被困了好几个小时了。我无法消除该错误。
最佳答案
请在字符串中添加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'
关于Python Fernet 类型错误 : token must be bytes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63314081/