Encoder • Decoder • Hasher
ovaltinepy is a powerful and versatile command-line tool designed for a wide range of encoding, decoding, hashing, and string manipulation tasks. Whether you're a security professional, a developer, or just someone who needs to quickly transform data, Ovaltine provides a comprehensive suite of functionalities accessible via an interactive menu or direct command-line arguments.
- Extensive Encoding/Decoding: Support for common formats like Base64, Hexadecimal, URL, HTML Entities, ASCII, Punycode, XML, JSON, YAML, and various UTF encodings.
- Classic Ciphers: Implementations of ROT13, Caesar, Atbash, Vigenère, XOR, Morse Code, A1Z26, Baconian, Polybius Square, Affine, Playfair, Hill, Rail Fence, and Scytale ciphers.
- Hashing Algorithms: Generate MD5, SHA-1, SHA256, SHA512, CRC32, Adler-32, SHA3, BLAKE2b, and BLAKE2s hashes. Includes hash analysis and verification.
- String Manipulation: Functions for reversing, changing case (uppercase, lowercase, capitalize, title case, swap case), and Leet (1337) speak.
- Numeric System Conversions: Convert between Decimal, Hex, Octal, IP Address to Integer, Integer to IP Address, Roman Numerals, Binary Coded Decimal (BCD), Base36, and Base62.
- Miscellaneous Tools: Quoted-Printable, UUencoding, XXencoding, Hexlify, EBCDIC, Luhn Algorithm, Geohash, UUID generation/parsing, Raw Hex Dump, Brainfuck, and Tap Code.
- Compression/Decompression: Zlib, Gzip, Bzip2, LZMA, Deflate, and Zstandard compression (input/output handled as Base64).
- Interactive Menu: User-friendly interactive mode for easy navigation and operation selection.
- Command-Line Interface (CLI): Execute operations directly from the command line for scripting and automation.
- Operation History: Keep track of your past operations.
- Mobile-Friendly Display: A dedicated single-column menu display for smaller terminals.
- Python 3.x
pip(Python package installer)
pip install ovaltinepyor optionally without venv
pip install ovaltinepy --break-system-packages- Clone the Repository:
git clone https://github.com/ghostescript/ovaltinepy cd ovaltinepy - Virtual Environment:
python -m venv .venv source .venv/bin/activate - Install Dependencies:
pip install -r requirements.txt
- Make Executable:
chmod +x ovaltine.py
Linux
git clone https://github.com/ghostescript/ovaltinepy
cd ovaltinepy
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
chmod +x ovaltine.py
python ovaltine.pyTermux
git clone https://github.com/ghostescript/ovaltinepy
cd ovaltinepy
pip install -r requirements.txt
chmod +x ovaltine.py
python ovaltine.pyRun the script without any arguments to enter interactive mode:
python ovaltine.pyA menu will be displayed, allowing you to choose from various operations. Follow the prompts to input text, select encode/decode options, and provide any necessary extra parameters (like shift values or keys).
You can perform operations directly from the command line using arguments.
General Usage:
┌──(kali㉿localhost)-[~/ovaltinepy]
└─$ python ovaltine.py -h
Encoder/Decoder/Hasher Tool Help
This versatile command-line tool provides a wide range of encoding, decoding, hashing,
and string manipulation functionalities. It can be used interactively or via
command-line arguments for automation.
Interactive Mode:
Run the script without any arguments to enter interactive mode. A menu will be
displayed, allowing you to choose from various operations. Follow the prompts
to input text, select encode/decode options, and provide any necessary extra
parameters (like shift values or keys).
Command-Line Mode:
You can perform operations directly from the command line using arguments.
Usage:
python ovaltine.py [OPTIONS]
Notes:
- Operation names are case-insensitive and spaces are ignored when matching.
- For operations requiring extra input (like 'shift' or 'key'), provide them
as additional command-line arguments.
- Some operations (e.g., 'Analyze Hash', 'Auto Detect') do not require a
'choice' argument.
Options:
-op, --operation <value> Specify the operation (e.g., 'binary', 'hex', 'md5').
-c, --choice <value> 1 for encode/encrypt, 2 for decode/decrypt.
-i, --input <value> The input string to process.
-if, --input-file <value> Path to a file containing the input text.
-of, --output-file <value> Path to a file to write the result to.
-s, --shift <int> Shift value for Caesar cipher (e.g., 3).
-k, --key <value> Key for Vigenère or XOR ciphers (e.g., 'SECRET').
-ka, --key_a <int> Key 'a' for Affine Cipher.
-kb, --key_b <int> Key 'b' for Affine Cipher.
-kms, --key_matrix_str <value> Key matrix string for Hill Cipher (e.g., '2 3,1 4').
-r, --rails <int> Number of rails for Rail Fence Cipher.
-d, --diameter <int> Diameter for Scytale Cipher (number of columns).
-ht, --hash_type <value> Hash type for verification (e.g., 'md5', 'sha256').
-eh, --expected_hash <value> Expected hash value for verification.
-h, --help Show this help message and exit.
-x, --examples Show usage examples and exit.
--history Display the operation history.
--clear-history Clear the operation history file.
-ts, --test-suite Run the test_suite.py script.
-m, --mobile-display Display the menu in a single-column format (runs ovaltine_v2.py).
- Binary, Hexadecimal, Base64, URL (Percent) Encoding, HTML Entities, ASCII Values, Punycode, XML, JSON, YAML, ISO-8859-1 (Latin-1), Shift-JIS, UTF-7, UTF-8, UTF-16, UTF-32, Base32, Base58, Base85, Base91.
- ROT13, Caesar Cipher, Atbash Cipher, Morse Code, A1Z26 Cipher, Vigenère Cipher, Baconian Cipher, Polybius Square, Affine Cipher, Playfair Cipher, Hill Cipher, Rail Fence Cipher, Scytale Cipher, XOR Cipher.
- Reverse String, Uppercase, Lowercase, Capitalize, Title Case, Swap Case, Leet (1337).
- Analyze Hash, Verify Hash, MD5, SHA-1, SHA256, SHA512, CRC32, Adler-32, SHA3-224, SHA3-256, SHA3-384, SHA3-512, BLAKE2b, BLAKE2s.
- Decimal to Hex, Hex to Decimal, Decimal to Octal, Octal to Decimal, IP Address to Integer, Integer to IP Address, Roman Numerals, Binary Coded Decimal (BCD), Base36, Base62.
- Quoted-Printable, UUencoding, XXencoding, Hexlify, EBCDIC, Luhn Algorithm, Geohash, UUID (Generate/Parse), Raw Hex Dump, Brainfuck, Tap Code.
- Zlib Compress, Gzip Compress, Bzip2 Compress, LZMA Compress, Deflate, Zstandard Compress.
A dedicated single-column menu display for smaller terminals.
python ovaltine.py -mTo run the full test suite, including both functional tests and prompt verification tests:
python ovaltine.py --test-suiteContributions are welcome! Please feel free to submit issues, pull requests, or suggest new features.
Dec 23, 2025