Oracle 11g/12c Hash

Technical details, regex signatures, and cracking commands for the Oracle 11g/12c algorithm.

Regex Identification Signature:
^(S:)?[a-f0-9]{40}(:)?[a-f0-9]{20}$
Hashcat Command (Mode: 112):
John the Ripper Command:
← Back to Hash Identifier

What is Oracle 11g/12c?

Oracle’s legacy hash format, predominantly used in versions 11g and 12c of its database systems, is a proprietary variant of the MD5-based password storage mechanism, originally derived from the older Oracle 8i/9i schemes. Structurally, this format encodes passwords as a 22-character hexadecimal string, beginning with a fixed prefix (`"5"` for Oracle 11g/12c) followed by a salted hash. The salt—a 4-byte value—is concatenated with the plaintext password before being hashed using a custom iteration count (typically 20,000 iterations by default in 11g/12c), though the actual iteration count is embedded within the stored hash itself as a 4-byte big-endian value. The primary use-case of this format was to secure user credentials in Oracle database authentication, though it was later deprecated in favor of stronger algorithms like Oracle’s own 20-character hash (based on SHA-256 with a 20,000 iteration count) in newer versions. The format’s design prioritized backward compatibility over cryptographic robustness, inheriting MD5’s 128-bit output and lacking formal security proofs against modern attacks.

The Oracle 11g/12c hash format is vulnerable to cracking due to a confluence of architectural flaws. The primary weakness stems from its reliance on MD5, a cryptographically broken hash function susceptible to collision attacks and preimage resistance failures, exacerbated by the absence of a per-password salt in older versions (though later iterations included a salt, it remained fixed-length and predictable). The 20,000 iteration count, while higher than default MD5, is easily optimized using GPU-accelerated brute-force tools like Hashcat or John the Ripper, particularly when combined with rainbow tables precomputed for the specific salt-space. Additionally, the embedded iteration count in the hash itself leaks metadata, allowing attackers to tailor cracking strategies dynamically. The format’s reliance on big-endian iteration storage also introduces minor but exploitable timing inconsistencies, while the 22-character fixed-length output enables efficient dictionary attacks against weak passwords. Finally, the lack of key stretching beyond a fixed iteration count renders it vulnerable to hardware-accelerated attacks, as modern GPUs can evaluate billions of hashes per second when targeting this format.

Identifying Oracle 11g/12c 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 Oracle 11g/12c, security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack Oracle 11g/12c

If you need to recover the plaintext password for a Oracle 11g/12c 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.