CLI tool for file encryption/decryption
Project description
blackbit 🚀
A minimal Python CLI tool for streaming file encryption and decryption, with optional zipping, secure deletion, and Google Drive integration.
Overview
Blackbit enables encryption or decryption of single files or entire folders (zipped) without loading them fully into memory—ideal for large files. It also supports:
- Password-based encryption using cryptography.Fernet
- Progress bars powered by tqdm
- Optional upload/download to Google Drive
- Secure cleanup of temporary files
- USB drive detection
- A hybrid CLI and GUI interface for flexibility
Prerequisites
- Python 3.8 or newer
- The following pip-installed dependencies: cryptography, tqdm, psutil, google-auth, google-api-python-client, tkinter
Installation
Run: pip install blackbit
Usage
Execute: blackbit
You'll see an interactive menu: [1] Encrypt a file or folder [2] Decrypt a file [3] Exit
Workflow steps:
- Choose encrypt or decrypt
- Select the target file or folder using CLI or GUI
- Choose whether to zip when encrypting a folder
- Enter a password (converted into a Fernet key)
- Watch a live progress bar
- Optionally upload or download to/from Google Drive
- Temporary files are securely deleted after use
Encryption Details
- Uses cryptography.Fernet for symmetric encryption (AES‑based, with authentication)
- Processes files in chunks with metadata headers—efficient and memory-safe, especially for large files
- Optional zipping before encryption using Python's zipfile
Project Structure
blackbit/ init.py (contains version) main.py (CLI logic, encryption, Drive support, etc.)
README.txt (project documentation) LICENSE (MIT license text) pyproject.toml (package/build configuration)
Changelog / Roadmap
Current version: 1.0.0
- Streaming encryption & decryption
- Folder zipping
- Google Drive integration
- Secure delete
- Add unit tests
- Improve error handling
- Refactor into separate modules (crypto.py, drive.py, etc.)
Resources & References
- Use cryptography.Fernet for secure and authenticated symmetric encryption
- For large-file encryption, chunked streaming is essential to avoid high memory usage
- Clean, well-structured READMEs improve usability and attract contributors
Made with passion for secure, efficient secure tool💡
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file blackbit-0.0.2.tar.gz.
File metadata
- Download URL: blackbit-0.0.2.tar.gz
- Upload date:
- Size: 7.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
83fd31ec94e9f5c933b3544960b5c0035967a55694ea14ea7772c0d317e7fc75
|
|
| MD5 |
73c549aa5572d8236f83ca4e44bfcdb9
|
|
| BLAKE2b-256 |
6dbb79ff9c83a316b3cddf2af6c135ce3e0038b30599a9313a45b18c8eb74c3b
|
File details
Details for the file blackbit-0.0.2-py3-none-any.whl.
File metadata
- Download URL: blackbit-0.0.2-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f2d01e8c03b6bc75f32028f16bbf86d613007bdb3c6f9b02303fd075d914056f
|
|
| MD5 |
417516c40e1b8961a6e10b2c77defe01
|
|
| BLAKE2b-256 |
f72c263779d7e80efd70537c895cf99f75b6a57b614d5912455e8d4162b0ede8
|