简体   繁体   中英

I have a python error with the cryptography library. Fernet.decrypt() missing 1 required positional argument: 'token'

I am experimenting with the cryptography library in python. I am getting this error:

Fernet.decrypt() missing 1 required positional argument: 'token'

This error came up while I was trying to decrypt the files. I do not no how to fix this, any suggestions will be appreciated. here is the code:

from cryptography.fernet import Fernet

Key = Fernet.generate_key()
fernet = Fernet(Key)

#with open("filekey.Key", 'wb') as filekey:
 #   filekey.write(Key)


with open ("filekey.Key", 'rb') as filekey:
    Key = filekey.read()
#with open("HHAY.csv" , 'rb') as infile:
  #  original = infile.read()
#enc = fernet.encrypt(original)
#with open("HHAYenc.csv", 'wb') as encfile:
    #encfile.write(enc)

with open("HHAYenc.csv",'rb') as encrypted_file:
    encrypted = encrypted_file.read()
decrypted = Fernet.decrypt(encrypted)
with open("decHHAY.csv", 'wb') as decrypted_file:
    decrypted_file.write(decrypted)

The encryption works but the decryption doesn't.

When you write:

decrypted = Fernet.decrypt(encrypted)

You meant:

decrypted = fernet.decrypt(encrypted)

Note the change in capitalization ( Fernet -> fernet ). You are erroneously calling the class rather than your instance variable.

This code runs without errors:

from cryptography.fernet import Fernet

Key = Fernet.generate_key()
fernet = Fernet(Key)

# Save key to a file
with open("filekey.Key", "wb") as filekey:
    filekey.write(Key)

# Read key from a file
with open("filekey.Key", "rb") as filekey:
    Key = filekey.read()

# Create example file "example.txt"
with open("example.txt", "w", encoding="utf8") as sample:
    sample.write("This is a test.\n")

# Read data from "example.txt"
with open("example.txt", "rb") as infile:
    original = infile.read()

# Encrypt data
encrypted = fernet.encrypt(original)

# Write encrypted data to "example.enc"
with open("example.enc", "wb") as encfile:
    encfile.write(encrypted)

# Read encrypted data from "example.enc"
with open("example.enc", "rb") as encrypted_file:
    encrypted = encrypted_file.read()

# Decrypt data
decrypted = fernet.decrypt(encrypted)

# Write decrypted data to "example.dec"
with open("example.dec", "wb") as decrypted_file:
    decrypted_file.write(decrypted)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM