Hash Functions
SHA-1, SHA-256, and SHA-512 computed with the browser’s own Web Crypto implementation (crypto.subtle.digest). No JavaScript hash code is involved in this module.
0 characters. Encoded as UTF-8 before hashing.
Read locally as raw bytes with FileReader. Nothing leaves this page.
- Input bytes
- —
- Output bytes
- —
- Elapsed
- —
HMAC
Keyed message authentication using crypto.subtle.importKey and crypto.subtle.sign. Both key and message may be supplied as text or as hex bytes.
The key must be non-empty.
- Key bytes
- —
- Message bytes
- —
- MAC bytes
- —
- Elapsed
- —
AES-GCM Encrypt / Decrypt
PBKDF2-SHA-256 with 600,000 iterations (OWASP 2023 guidance), a fresh 16-byte salt, and AES-GCM 256-bit with a 12-byte IV and a 128-bit authentication tag. All primitives come from Web Crypto.
The password is never logged, echoed, stored, or transmitted. It lives only in this input field and in memory for the duration of the operation. A wrong password or a corrupted payload produces an explicit authentication failure — never partial plaintext.
Base64 Encode / Decode
Standard Base64 (RFC 4648 §4) and URL-safe Base64 (RFC 4648 §5). Decoding is strict: invalid characters and malformed padding are rejected with a specific message rather than silently skipped.
0 characters.
- Input bytes
- —
- Output bytes
- —
Base58 / Base58Check
Bitcoin alphabet, BigInt-based base conversion, and double-SHA-256 checksums. Leading 0x00 bytes are preserved as leading 1 characters, and the alphabet deliberately excludes 0, O, I, and l.
RIPEMD-160 (pure JavaScript)
Web Crypto does not expose RIPEMD-160, so this toolkit ships a compact, readable pure-JavaScript implementation. It is the only primitive here that is not provided by the browser.
This implementation has not been constant-time audited. Use it for verification, teaching, and test-vector checking — not for handling live private keys. The P2PKH address helper uses it; treat those addresses as verification output.
| Input | Expected digest | Computed | Result |
|---|
Bitcoin Address Inspector
Read-only Base58Check decode. Paste a Bitcoin address or a WIF private key and the toolkit reports the version byte, network, type, payload, and checksum verdict. Input is never stored, never transmitted, and is discarded when you clear the field or reload the page.
- Checksum
- Version byte
- Network
- Type
- Payload (hex)
- Payload length
- Notes