Fuzzu Folder Encryptor – Encrypt & Decrypt Folders Instantly with Python GUI
Demo :
Click Video πππ
π‘ Features :
-
π One-click Folder Encryption (.fuzzu format)
-
π§ Uses Python’s Fernet + zipfile module
-
π¨ Hacker-style GUI with customtkinter
-
π Instant Folder Restore from Encrypted File
-
π Opens output folder directly in Explorer
-
π΄ Fully Offline – No Internet Required!
Code :
import os, zipfile, subprocess
from cryptography.fernet import Fernet
import customtkinter as ctk
from tkinter import filedialog, messagebox
# --- CustomTkinter Setup ---
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
app = ctk.CTk()
app.title("Fuzzu Folder Encryptor")
app.geometry("600x500")
app.resizable(False, False)
key_file = "secret.key"
# ---- Key Handling ----
def write_key():
key = Fernet.generate_key()
with open(key_file, "wb") as f:
f.write(key)
def load_key():
return open(key_file, "rb").read()
if not os.path.exists(key_file):
write_key()
fernet = Fernet(load_key())
# ---- ZIP Folder ----
def zip_folder(folder_path):
zip_path = folder_path + ".zip"
with zipfile.ZipFile(zip_path, "w", zipfile.ZIP_DEFLATED) as zipf:
for root, _, files in os.walk(folder_path):
for file in files:
abs_path = os.path.join(root, file)
rel_path = os.path.relpath(abs_path, start=folder_path)
zipf.write(abs_path, arcname=rel_path)
return zip_path
# ---- Folder Selection ----
selected_folder = ctk.StringVar()
def select_folder():
path = filedialog.askdirectory()
selected_folder.set(path)
# ---- Encrypt Folder ----
def encrypt_folder():
folder_path = selected_folder.get()
if not folder_path:
messagebox.showerror("Error", "Please select a folder.")
return
zip_path = zip_folder(folder_path)
with open(zip_path, "rb") as file:
encrypted = fernet.encrypt(file.read())
enc_file_path = zip_path + ".fuzzu"
with open(enc_file_path, "wb") as enc_file:
enc_file.write(encrypted)
os.remove(zip_path)
messagebox.showinfo("Encrypted", f"Folder encrypted:\n{enc_file_path}")
# ---- Decrypt Folder ----
def decrypt_folder():
file_path = filedialog.askopenfilename(filetypes=[("Fuzzu Encrypted", "*.fuzzu")])
if not file_path:
return
try:
with open(file_path, "rb") as enc_file:
decrypted_data = fernet.decrypt(enc_file.read())
# Save decrypted ZIP
zip_path = file_path.replace(".fuzzu", ".zip")
with open(zip_path, "wb") as dec_file:
dec_file.write(decrypted_data)
# Extract folder
extract_dir = file_path.replace(".fuzzu", "_restored_folder")
os.makedirs(extract_dir, exist_ok=True)
with zipfile.ZipFile(zip_path, "r") as zip_ref:
zip_ref.extractall(extract_dir)
os.remove(zip_path)
# Open the folder in Windows Explorer
try:
subprocess.Popen(f'explorer "{extract_dir}"')
except Exception as e:
print("Could not open folder:", str(e))
messagebox.showinfo("Success", f"Folder decrypted successfully.\nSaved at:\n{extract_dir}")
except Exception as e:
messagebox.showerror("Error", f"Failed to decrypt.\nReason:\n{str(e)}")
# ---- GUI Layout ----
ctk.CTkLabel(app, text="Fuzzu Folder Encryptor", font=("Arial", 26, "bold")).pack(pady=20)
ctk.CTkButton(app, text="Select Folder", command=select_folder).pack(pady=10)
ctk.CTkLabel(app, textvariable=selected_folder, wraplength=500).pack()
ctk.CTkButton(app, text="Encrypt Folder", command=encrypt_folder, fg_color="green").pack(pady=20)
ctk.CTkButton(app, text="Decrypt Folder", command=decrypt_folder, fg_color="orange").pack()
app.mainloop()
Comments
Post a Comment