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

Popular posts from this blog

πŸš€ Simple Login & Registration System in Python Tkinter πŸ“±

πŸš€ Create a Python Screen Recorder with Audio (Complete Code)

Python IP Tracker App with GUI | Track IP Location Real-Time! (Working Project)