Spaces:
Sleeping
Sleeping
File size: 1,630 Bytes
cf6a965 6d64ea5 cf6a965 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import os
from cryptography.fernet import Fernet
from tqdm import tqdm
def get_key():
# Generate a key
key = Fernet.generate_key()
# Create a Fernet object using the key
fernet = Fernet(key)
return key, fernet
def encrypt(fernet,paths:list):
for folder_data in paths:
print(os)
for file in os.listdir(folder_data):
file_path = os.path.join(folder_data,file)
# Open the files to be encrypted in binary read mode
with open(file_path, 'rb') as f:
original = f.read()
# Encrypt the files content
encrypted = fernet.encrypt(original)
# Save the encrypted data
os.makedirs('data/encrypted_data', exist_ok=True)
with open(f'data/encrypted_data/{file}', 'wb') as f:
f.write(encrypted)
return True
def save_key(key):
# Load existing .env and save the key
with open(".env", "r") as f:
lines = f.readlines()
# insert secret at the end of existing doc
lines.insert(len(lines),f"\n\nsecret_key = '{key.decode()}'")
# Write back to file
with open(".env", "w") as f:
f.writelines(lines)
return True
# def decrypt_files(file, key):
# with open(".env", "w") as f:
# f.readlines()
# for l in f:
# if l.startswith("secret_key"):
# key=f.split("=")[1]
# return
if __name__ == "__main__":
key, fernet = get_key()
encrypt(fernet,paths=["data/CV_competences","data/research_paper"])
save_key(key) |