【问题标题】:Python Fernet TypeError: token must be bytesPython Fernet TypeError:令牌必须是字节
【发布时间】:2020-08-08 09:58:32
【问题描述】:

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

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

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

【问题讨论】:

    标签: python encryption fernet


    【解决方案1】:

    请通过在字符串中添加 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'
    

    【讨论】:

    • 我尝试加密一个变量。如何将变量值转换为字节
    • a ="abdsa" a =bytes(a,'utf-8')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2022-01-06
    • 2020-12-03
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    相关资源
    最近更新 更多