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)