Skip to main content

AES-GCM file encryption/decryption CLI tool

Project description

🔒 Kremographer

AES-GCM File Encryption/Decryption CLI Tool

Kremographer is a lightweight, command-line tool for encrypting and decrypting files using the AES-GCM (Galois/Counter Mode) encryption standard.
It provides cryptographic protection, password-based key derivation (PBKDF2-HMAC-SHA256), and simple usability from your terminal.


✨ Features

  • 🔐 AES-256-GCM authenticated encryption
  • 🧂 Random salt & nonce generation per file
  • 🔑 Password-based key derivation using PBKDF2-HMAC-SHA256
  • 🚫 Passwords never stored or logged
  • ⚙️ Command-line interface for quick use
  • 🧰 Cross-platform (Linux, macOS, Windows)
  • 🧾 MIT licensed, open-source

📦 Installation

Install Kremographer directly from PyPI:

pip install kremographer

After installation, you’ll have a CLI command available globally:

kremographer --help

🧭 Usage

🔹 Encrypt a file

kremographer encrypt <input_file> <output_file>

Example:

kremographer encrypt notes.txt notes.enc

You’ll be prompted to create and confirm a secure password.
Passwords must include:

  • At least 12 characters
  • 1 uppercase letter
  • 1 lowercase letter
  • 1 number
  • 1 special character

🔹 Decrypt a file

kremographer decrypt <encrypted_file> <output_file>

Example:

kremographer decrypt notes.enc notes.txt

You’ll be prompted for your password.
If the password or file is incorrect, decryption will fail safely.


🧩 Example session

$ kremographer encrypt practice.txt practice.enc
Please create a password: **************
Please re-enter your password: **************
-----------------------------------------------------------
File encrypted --> practice.enc
-----------------------------------------------------------

$ kremographer decrypt practice.enc practice_decrypted.txt
Enter your password for decryption: **************
-----------------------------------------------------------
File decrypted --> practice_decrypted.txt
-----------------------------------------------------------

⚠️ Notes

  • If the output file already exists, you’ll be prompted before overwriting.
  • Each encryption generates a unique salt and nonce, ensuring strong cryptographic safety.
  • Passwords are never stored or written to disk — only used to derive a temporary encryption key.
  • Losing your password means your data cannot be recovered.

🛠️ Dependencies

  • cryptography >= 42.0
  • Python >= 3.8

📜 License

This project is licensed under the MIT License.
Copyright © 2025 Kareem Mahfouf


💡 About

Kremographer was built as a simple yet secure way to handle file encryption using modern cryptographic standards.
Perfect for learning, research, or real-world file protection.


🧠 Future ideas

  • Directory-wide encryption support
  • Configurable password policies
  • Optional integrity verification mode
  • GUI frontend

Disclaimer:
Kremographer is an open-source tool that uses industry-standard encryption (AES-GCM via the Python cryptography library).
While it implements strong cryptographic practices, no software can guarantee absolute security.
Use at your own risk.

Developed with ❤️ by Kareem Mahfouf

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

kremographer-1.0.0.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

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

kremographer-1.0.0-py3-none-any.whl (6.6 kB view details)

Uploaded Python 3

File details

Details for the file kremographer-1.0.0.tar.gz.

File metadata

  • Download URL: kremographer-1.0.0.tar.gz
  • Upload date:
  • Size: 5.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for kremographer-1.0.0.tar.gz
Algorithm Hash digest
SHA256 53a384050a724697185b77ff55021f09d30a2c9f375b2329d6e167c1ea94bc54
MD5 67372fd660b77722987ecd102521ce4c
BLAKE2b-256 d16f53ff3072589ea8393212c6c405600c0e9629b046cea32d3eac717a8b96d2

See more details on using hashes here.

File details

Details for the file kremographer-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: kremographer-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 6.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.3

File hashes

Hashes for kremographer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 282a7e8ce74071f3bd061d4001260d1b5f8d2ddf453af49b7c617207ded3472a
MD5 107edfb4d08f32594a89321fa477c5b3
BLAKE2b-256 a6c4bde9eeea6e13627cabc6625d9037ca3fee2c2cc8db45ead4564351e84518

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