Paste any BCrypt hash to visually decode its every segment — version, cost factor, salt and digest — with color-coded annotations, timing analysis and deep-dive educational content.
A BCrypt hash is always exactly 60 characters: 4-char prefix ($2b$), 2-digit cost, $ separator, 22-char Base64 salt, 31-char Base64 digest. No separators between salt and digest — the split is positional at character 29 from the cost $.
BCrypt silently truncates passwords to 72 bytes. "password123456…" (73+ chars) hashes identically to the first 72 chars. Mitigation: pre-hash with SHA-256/512 before BCrypt, or use Argon2/scrypt. Some libraries (like bcryptjs) warn about this.
BCrypt uses a custom Base64 alphabet: ./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789 — not the standard RFC 4648 alphabet. The output is not decodable with standard atob() or standard Base64 libraries without remapping.
SHA-256 runs at billions of hashes per second on modern GPUs (A100: ~100 GH/s). A BCrypt cost 12 hash takes ~250ms — roughly 25 billion times slower. An attacker cracking SHA-256 in 1 second would need 25 billion seconds (>790 years) with BCrypt cost 12.