Updated to A-3-i
This commit is contained in:
76
README.md
76
README.md
@@ -1,60 +1,52 @@
|
||||
# PCS - P7MJ's enCryption System
|
||||
**Version:** A-1-i Proto
|
||||
**Author:** P7MJ
|
||||
# PCS - P7MJ's enCryption System A-3-i "Terminal"
|
||||
|
||||
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.
|
||||
## 🔤 Introduction
|
||||
|
||||
## 🚀 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.
|
||||
PCS is a secure and lightweight Python utility designed to encrypt and decrypt any type of file that can be read in binary. Virtually every file can be encrypted and decrypted, including archives, pictures, movies, code, and programs.
|
||||
|
||||
---
|
||||
It is the standard encryption program for [BUGPy-mOS](https://git.wholeworldcoding.com/wholeworldcoding/BUGPy-mOS) (implemented as the FDEA launcher and encryption "ant"). An implementation derived from the older A-2-i is included as part of the core script.
|
||||
|
||||
## 🛠️ Installation
|
||||
This version features total extension freedom. You can now not only encrypt `.zip` files, but any type of file readable in binary. Additionally, there are no longer any limits regarding the names and extensions of the archives and the keyfiles generated.
|
||||
|
||||
A-3-i, is compatible both ways with A-2-i, provided that you follow A-2-i's strict filename extension protocols. A-3-i and A-2-i are compatible with A-1-i if you do not use keyfiles while encrypting.
|
||||
|
||||
PCS is tested on **Debian Trixie** only. It should work on other Linux distributions, Windows, and Mac, but it is not tested.
|
||||
|
||||
## 🧩 Features
|
||||
|
||||
- Uses `PBKDF2HMAC` with **480,000 iterations** to make your password strong, cryptographically.
|
||||
|
||||
- Generates a unique 16-byte random salt for every encryption process, protecting against rainbow table attacks.
|
||||
|
||||
- Salts can be stored directly inside the encrypted file, or outside the file as a key, providing versatility and security.
|
||||
|
||||
- Fernet ensures that if the file is corrupted, tampered with, or an attempt to decrypt it has a wrong password, the program will refuse to decrypt rather than producing corrupt data.
|
||||
|
||||
- Shredding of original files, including keyfiles, is supported after encryption or decryption.
|
||||
|
||||
> [!TIP]
|
||||
> The security of the archive depends on your password! Since there is no limit to your password length, or complexity, ensure your password has >8 chars and includes symbols and numbers.
|
||||
|
||||
## 🛠️ Installation and Dependencies
|
||||
|
||||
PCS requires Python 3.x and the `cryptography` library.
|
||||
|
||||
1. **Clone or download** this repository.
|
||||
1. **Clone this repository** or download a release from the [Releases](https://git.wholeworldcoding.com/p7mj/PCS/releases) page.
|
||||
2. **Install the dependency:**
|
||||
```bash
|
||||
pip install cryptography
|
||||
```
|
||||
|
||||
---
|
||||
## 🧑💻 Usage
|
||||
|
||||
## 📖 How to Use
|
||||
Navigate to the folder and run:
|
||||
|
||||
Run the script using:
|
||||
```bash
|
||||
python PCS-A-1-i-Proto.py
|
||||
```
|
||||
python3 PCS-A-3-i\ Terminal.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.
|
||||
After you are inside, type `help` for built-in help.
|
||||
|
||||
### 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`.
|
||||
## 🏅 Credits
|
||||
|
||||
---
|
||||
|
||||
## ⚠️ 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.
|
||||
P7MJ Original.
|
||||
|
||||
Reference in New Issue
Block a user