██████╗██╗██████╗ ██╗ ██╗██████╗ █████╗
██╔════╝██║██╔══██╗██║ ██║██╔══██╗██╔══██╗
██║ ██║██████╔╝███████║██████╔╝███████║
██║ ██║██╔═══╝ ██╔══██║██╔══██╗██╔══██║
╚██████╗██║██║ ██║ ██║██║ ██║██║ ██║
╚═════╝╚═╝╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝
know what protects you.
- Verify files: SHA-256, SHA-512, SHA-1, MD5 hash + VirusTotal (70+ engines) + GPG signature
- Hash files
- Encrypt: AES-256-GCM + Argon2id password-based, or GPG public key
- Decrypt
.ciphraand.gpgfiles - Sign files with a detached GPG signature
- Create, export, extend, and delete GPG key pairs
- Manage encryption subkeys: add, rotate, extend expiry
- Python 3.10+
- GPG 2.1+ for signatures, encryption, and key management
- VirusTotal API key (optional, free and premium tiers supported): virustotal.com
Free tier: 4 lookups/min, files up to 32 MB.
Premium: higher limits, files up to 650 MB.
pipx install git+https://github.com/gaisma22/ciphraOr clone the repo:
git clone https://github.com/gaisma22/ciphra
cd ciphra
pipx install -e .Run ciphra to open the interactive menu.
Or use CLI flags directly:
# verify a file
ciphra verify file.iso
# verify with signature file, skip VirusTotal
ciphra verify file.iso --sig file.iso.sig --no-vt
# verify with expected hash and algorithm
ciphra verify file.iso --expected a1b2c3... --algo sha256
# hash a file
ciphra hash file.iso
ciphra hash file.iso --algo sha512
# configure VirusTotal API key
ciphra config --vt-key YOUR_KEY
ciphra config --show
ciphra config --remove-vt-key
# check version
ciphra --version
# set up tab completion
ciphra completions --shell bashLinux. Tested on Ubuntu 24, GPG 2.4.4. Works on any distro with Python 3.10+ and GPG 2.1+.
MIT
