Skip to main content

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:

  1. Choose encrypt or decrypt
  2. Select the target file or folder using CLI or GUI
  3. Choose whether to zip when encrypting a folder
  4. Enter a password (converted into a Fernet key)
  5. Watch a live progress bar
  6. Optionally upload or download to/from Google Drive
  7. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

blackbit-0.0.2.tar.gz (7.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

blackbit-0.0.2-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

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

Hashes for blackbit-0.0.2.tar.gz
Algorithm Hash digest
SHA256 83fd31ec94e9f5c933b3544960b5c0035967a55694ea14ea7772c0d317e7fc75
MD5 73c549aa5572d8236f83ca4e44bfcdb9
BLAKE2b-256 6dbb79ff9c83a316b3cddf2af6c135ce3e0038b30599a9313a45b18c8eb74c3b

See more details on using hashes here.

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

Hashes for blackbit-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 f2d01e8c03b6bc75f32028f16bbf86d613007bdb3c6f9b02303fd075d914056f
MD5 417516c40e1b8961a6e10b2c77defe01
BLAKE2b-256 f72c263779d7e80efd70537c895cf99f75b6a57b614d5912455e8d4162b0ede8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page