encutil
Encoding/Decoding Utility CLI - encode and decode base64, hex, URL, HTML entities, hash strings/files, and decode JWTs.
Installation
pip install encutil
Usage
All commands accept input as an argument, from -f FILE, or from stdin.
Base64
encutil b64e "hello world" # SGVsbG8gV29ybGQ=
encutil b64d "SGVsbG8gV29ybGQ=" # hello world
echo "secret" | encutil b64e # c2VjcmV0Cg==
Hex
encutil hex "hello" # 68656c6c6f
encutil unhex "68656c6c6f" # hello
URL Encoding
encutil url "hello world" # hello%20world
encutil unurl "hello%20world" # hello world
encutil url "key=value&foo=bar" # key%3Dvalue%26foo%3Dbar
HTML Entities
encutil html "<script>alert('xss')</script>"
# <script>alert('xss')</script>
encutil unhtml "<script>" # <script>
Hashing
encutil hash sha256 "password" # 5e884898da28...
encutil hash md5 "text" # 1cb251ec0d56...
encutil hashfile sha256 myfile.txt # Hash a file
Supported algorithms: md5, sha1, sha256, sha512, sha224, sha384
JWT Decoding
Decode JWT tokens without verification (extracts header and payload):
encutil jwt "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
# Header:
# {
# "alg": "HS256",
# "typ": "JWT"
# }
#
# Payload:
# {
# "sub": "1234567890",
# "name": "John Doe",
# "iat": 1516239022
# }
Auto-Detect Encoding
Try multiple decodings and show what works:
encutil detect "SGVsbG8gV29ybGQ="
# BASE64:
# Hello World
JSON Output
All commands support --json for machine-readable output:
encutil b64e "hello" --json # {"base64": "aGVsbG8="}
encutil hash sha256 "test" --json # {"algorithm": "sha256", "hash": "9f86d08..."}
File Input
Read from file with -f:
encutil b64e -f secret.txt
encutil hashfile sha256 myfile.bin
For AI Agents
See SKILL.md for AI-agent-friendly documentation.
License
MIT
Release files for encutil 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| encutil-0.1.0.tar.gz | 5.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| encutil-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 11.6 kB
Release files / encutil-0.1.0.tar.gz
| Download URL | encutil-0.1.0.tar.gz |
|---|---|
| Size | 5.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
007ae097af3ad36a431d75a3267fab8b09fe37043e4178b03477dd8c8e8c0ecf
|
|
BLAKE2b-256 checksum How to use checksums |
9e3a47d1d27d7df43e2467ac0eb9feef455a5052e6b4345fd324ad792e255262
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / encutil-0.1.0-py3-none-any.whl
| Download URL | encutil-0.1.0-py3-none-any.whl |
|---|---|
| Size | 6.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9b4e17e15d5fd9bd0f3248277066f69881db8a05f24165794ccbc5394e4004c0
|
|
BLAKE2b-256 checksum How to use checksums |
22bbba2317820f92ba087387ae365c532e823396d00762dca22ec577edc9365e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|