# PCS - P7MJ's enCryption System **Version:** A-1-i Proto **Author:** P7MJ PCS is a lightweight, secure Python utility designed to encrypt and decrypt ZIP files (and other binary data) using industry-standard AES-256 encryption via the Fernet protocol. ## 🚀 Features * **Hardened Key Derivation:** Uses `PBKDF2HMAC` with **480,000 iterations** to turn your password into a cryptographically strong key. * **Salted Encryption:** Generates a unique 16-byte random salt for every encryption process, protecting against rainbow table attacks. * **Embedded Metadata:** The salt is stored directly inside the encrypted file (`.p7c_enc`), so you only need your password to decrypt. * **Authenticated Encryption:** Uses Fernet, which ensures that if the file is tampered with or the password is wrong, the system will refuse to decrypt rather than producing corrupted data. * **User Safety:** Includes file existence verification and optional "shredding" (deletion) of source files after processing. --- ## 🛠️ Installation PCS requires Python 3.x and the `cryptography` library. 1. **Clone or download** this repository. 2. **Install the dependency:** ```bash pip install cryptography ``` --- ## 📖 How to Use Run the script using: ```bash python PCS-A-1-i-Proto.py ``` ### 1. Encrypting a File * Select option `[1]`. * Enter the name of your `.zip` file (the script automatically appends the extension). * Create a password. **Important:** If you lose this password, your data is unrecoverable. * The script creates a file with the `.p7c_enc` extension. * Choose whether to "shred" (permanently delete) the original file. ### 2. Decrypting a File * Select option `[2]`. * Enter the full name of the `.p7c_enc` file. * Enter your password. * The file will be restored as `unencrypted.zip`. --- ## ⚠️ Important Security Notes * **Password Length:** While the script is technically secure, the strength of the encryption relies entirely on the complexity of your password. * **The Salt:** The first 16 bytes of your `.p7c_enc` file is the salt. Do not modify or "trim" the encrypted file, or it will become undecryptable. * **Permanent Deletion:** The "shred" feature uses `os.remove()`, which bypasses the Recycle Bin/Trash on most systems. Use with caution! --- ## 🏗️ Technical Details * **Encryption Engine:** AES-128 in CBC mode with PKCS7 padding. * **Authentication:** HMAC using SHA256. * **KDF:** PBKDF2 with SHA256.