sha384(sha384($salt).sha384($pass)) Hash
Technical details, regex signatures, and cracking commands for the sha384(sha384($salt).sha384($pass)) algorithm.
What is sha384(sha384($salt).sha384($pass))?
The cryptographic hash format `sha384(sha384($salt).sha384($pass))` is a nested SHA-384 construction derived from early password-hashing schemes designed to mitigate brute-force attacks through computational overhead. Its origins trace back to the 2000s, when security practitioners sought to defend against increasingly efficient GPU and FPGA-based cracking tools by introducing multi-stage hashing. The structure involves concatenating the SHA-384 hash of a salt (`$salt`) with the SHA-384 hash of a password (`$pass`), then hashing the resulting 384-bit string again with SHA-384. This approach was primarily intended for password storage in systems where computational cost was a deliberate trade-off to slow down offline attacks, though it lacks formal cryptographic standardization beyond ad-hoc security engineering. While not a formalized key derivation function (KDF), it exemplifies early defensive programming techniques to counter rainbow table precomputation and parallelized cracking.
Despite its layered hashing, this scheme is vulnerable to modern cryptanalysis due to its susceptibility to GPU/ASIC acceleration and poor resistance to optimized attacks. The primary flaw lies in its reliance on SHA-384’s parallelizable compression function, which allows attackers to exploit hardware-accelerated hashing pipelines (e.g., CUDA/Fermi cores) to evaluate millions of hashes per second. Additionally, the lack of a formal iteration count or adaptive work factor renders it brittle against evolving hardware—modern GPUs and FPGAs can evaluate nested SHA-384 operations at speeds exceeding 100k hashes/sec, rendering the overhead negligible. Theoretical weaknesses also include potential collision vulnerabilities in the concatenated intermediate state, though practical attacks remain impractical for well-salted passwords. Furthermore, the absence of a post-quantum resistant design or key-stretching mechanism (e.g., Argon2, bcrypt’s adaptive cost) renders it obsolete against quantum computing threats or future advancements in parallel processing.
Identifying sha384(sha384($salt).sha384($pass)) 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 sha384(sha384($salt).sha384($pass)), security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.
How to Crack sha384(sha384($salt).sha384($pass))
If you need to recover the plaintext password for a sha384(sha384($salt).sha384($pass)) 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.