from cryptography.fernet import Fernet
import base64
#def write_key():
#key=Fernet.generate_key()
#with open("key.key","wb") as key_file:
#key_file.write(key)
#write_key()
def load_key():
file=open("key.key", "rb")
key=file.read()
file.close()
return key
master_pwd=input("Enter master password: ")
key=load_key() + master_pwd.encode()
fer=Fernet(key)
def view():
with open("passwords.txt",'r') as f:
for line in f.readlines():
data=line.rstrip()
user, passw=data.split("|")
print("Username:", user, " |Password:",
fer.decrypt(passw))
# base64.decode(fer.decrypt(passw, encoding="ascii")))
def create():
name=input("username: ")
pwd=input("password: ")
with open("passwords.txt",'a') as f:
f.write(name + "|" + fer.encrypt(pwd.encode()).decode() + "\n")
while True:
mode=input("Create a new password or view existing ones (view, create), press x to quit? ").lower()
if mode=="x":
break
if mode=="view":
view()
elif mode=="create":
create()
else:
print("Invalid mode.")
continue
PS C:\Users\RAINMAKER\Desktop\Python Projects II> & C:/Users/RAINMAKER/AppData/Local/Programs/Python/Python311/python.exe "c:/Users/RAINMAKER/Desktop/Python Projects II??/password manager.py"
Enter master password: h
Create a new password or view existing ones (view, create), press x to quit? create
username: chief chef
password: 12345
Create a new password or view existing ones (view, create), press x to quit? view
Traceback (most recent call last):
File "c:\Users\RAINMAKER\Desktop\Python Projects II\password manager.py", line 47, in <module>
view()
File "c:\Users\RAINMAKER\Desktop\Python Projects II\password manager.py", line 29, in view
fer.decrypt(passw))
^^^^^^^^^^^^^^^^^^
File "C:\Users\RAINMAKER\AppData\Local\Programs\Python\Python311\Lib\site-packages\cryptography\fernet.py", line 86, in decrypt
timestamp, data = Fernet._get_unverified_token_data(token)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\RAINMAKER\AppData\Local\Programs\Python\Python311\Lib\site-packages\cryptography\fernet.py", line 122, in _get_unverified_token_data
raise InvalidToken
cryptography.fernet.InvalidToken
I was creating a password manager to restrict unauthorised access.
I am trying to write a code for encryption in Python and decryption in Python but I am getting an error.
I am using cryptography.fernet in python to encrypt a file and when I use Fernet Python for decryption it shows an error.
Above is my python code: