簡體   English   中英

Python Fernet TypeError: token must be bytes

[英]Python Fernet TypeError: token must be bytes

在這里,我嘗試將新行插入數據庫中的表中。

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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM