60 lines
2.4 KiB
Markdown
60 lines
2.4 KiB
Markdown
# 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. |