Getting this error when trying to run this:
JavaScript
x
9
1
File "Test Files.py", line 502, in decryptdefault
2
decrypted = fernet.decrypt(d)
3
File "/usr/lib/python3/dist-packages/cryptography/fernet.py", line 74, in decrypt
4
timestamp, data = Fernet._get_unverified_token_data(token)
5
File "/usr/lib/python3/dist-packages/cryptography/fernet.py", line 92, in _get_unverified_token_data
6
raise InvalidToken
7
8
cryptography.fernet.InvalidToken
9
FYI dk variable is defined with key (default key)
JavaScript
1
17
17
1
dk = 'niwaXsYbDiAxmLiqRiFbDa_8gHio15sNQ6ZO-sQ0nR4='
2
# Decrypts the file with default key
3
def decryptdefault(inclufile):
4
Key = dk
5
6
fernet = Fernet(Key)
7
readfile = open(inclufile, 'rb')
8
d = readfile.read()
9
readfile.close()
10
11
# Decrypts and puts it into the text
12
if readfile != "":
13
decrypted = fernet.decrypt(d)
14
decrypted = str(decrypted).replace('b'', '', 1)
15
decrypted = decrypted[:-3]
16
return str(decrypted)
17
Edit: I added the key for those who asked
Advertisement
Answer
I have found out, through trial and error with the same project later down the line, that you need to turn your key into something like this key = b'niwaXsYbDiAxmLiqRiFbDa_8gHio15sNQ6ZO-sQ0nR4='
The main difference being the key is encoded in a utf-8 format and is now readable by Fernet and doesn’t return that error. Here is a function that uses Tkinter, Fernet, and os to actually decrypt my file.
JavaScript
1
22
22
1
# Propriatary method of encrypting files
2
def decrypt(self, file):
3
with open(file, 'rb') as readfile:
4
contents = readfile.read()
5
6
self.title(os.path.basename(file) + ' - SecureNote')
7
# self.textbox is a variable inside of the class I am using for my window
8
self.textbox.delete(1.0, tk.END)
9
10
if contents != "":
11
# getword retur
12
Key = bytes(getword('Key:', 1), encoding="utf-8")
13
fernet = Fernet(Key)
14
15
decrypted = fernet.decrypt(contents).decode('utf-8')
16
self.textbox.insert(1.0, str(decrypted))
17
18
del Key
19
del fernet
20
else:
21
pass
22