Blowfish(OpenBSD) Hash

Technical details, regex signatures, and cracking commands for the Blowfish(OpenBSD) algorithm.

Regex Identification Signature:
^(\$2[abxy]?|\$2)\$[0-9]{2}\$[a-z0-9\/.]{53}$
Hashcat Command (Mode: 3200):
John the Ripper Command:
← Back to Hash Identifier

What is Blowfish(OpenBSD)?

The **Blowfish(OpenBSD)** hash format is a variant of the classic Blowfish cipher adapted for password hashing, originally integrated into OpenBSD’s cryptographic toolkit in the late 1990s as part of its secure password storage mechanism. Unlike traditional Blowfish, which is a symmetric block cipher designed for encryption, this variant leverages a modified Feistel network with a 64-bit block size and a key-dependent S-box structure to produce a fixed-length 128-bit hash output. The format was standardized in OpenBSD’s `/etc/master.passwd` and later adopted by other Unix-like systems for its resistance to brute-force attacks at the time. Structurally, it encodes passwords as a 24-byte hash (16 bytes for the hash + 8 bytes for a magic identifier "Blowfish"), followed by a 16-byte salt (derived from the user’s login name) and a 16-byte iteration count (defaulting to 65536 iterations). This design prioritized computational overhead to deter offline cracking, though its effectiveness diminished over time due to evolving hardware optimizations.

The **Blowfish(OpenBSD)** format is vulnerable to cracking primarily due to its reliance on outdated cryptographic assumptions and suboptimal resistance against modern computational attacks. The fixed iteration count (65536) was considered sufficient in the 1990s but is now trivial to bypass with GPU-accelerated cracking tools like Hashcat, which can evaluate billions of hashes per second. Additionally, the lack of a dynamic salt derivation (unlike bcrypt or Argon2) allows attackers to precompute rainbow tables for common passwords, reducing offline cracking time. The algorithm’s Feistel structure, while secure for encryption, lacks the iterative key stretching required for modern password hashing standards, making it susceptible to brute-force attacks when combined with optimized CPU/GPU implementations. Furthermore, the 128-bit hash output is vulnerable to collision attacks under quantum computing models, though classical collision resistance remains intact. These flaws render Blowfish(OpenBSD) obsolete for secure password storage, despite its historical role in early Unix security architectures.

Identifying Blowfish(OpenBSD) Hashes

Identifying a hash blindly is often difficult because multiple algorithms can output strings of the exact same length. For example, a standard 32-character hexadecimal string could be MD5, NTLM, MD4, or LM. To definitively identify Blowfish(OpenBSD), security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack Blowfish(OpenBSD)

If you need to recover the plaintext password for a Blowfish(OpenBSD) hash during a penetration test or forensics investigation, you must supply the correct module ID to your cracking software. Use the exact commands provided at the top of this page to target the hash successfully.