I am preparing for a credential in dictionary data type to be used in later projects, the entire credential has to be encrypted including username.
First I generate the key for the Fernet cipher, then I get the credential if the creds.enc file is not present.
The obtained credential is updated in the credential dictionary.
I used the json module to translate the dictionary into a string, then convert the string into bytes by encoding it with utf-8.
Then i used the cipher to encrypt the entire credential.
If the creds.enc file exists then I will decrypt the contents.
Below is the example code.
from getpass import getpass from cryptography.fernet import Fernet from os.path import exists import json credential = { "username": None, "password": None } key = Fernet.generate_key() cipher = Fernet(key) def get_credential(): username = input("Username: ") password = getpass() return username, password if not exists("creds.enc"): credential['username'], credential['password'] = get_credential() credential_byte = json.dumps(credential).encode('utf-8') cred_enc = cipher.encrypt(credential_byte) with open("creds.enc", "wb") as file_enc: file_enc.write(cred_enc) with open("creds.enc", "rb")as file_dec: cred_decrypt = file_dec.read() data = cipher.decrypt(cred_decrypt).decode('utf-8') print(data)