Join our Newsletter — 33% off our NHI Course
Home› FAQ› Cyber Security› What are the signs that hashing is being…
Cyber Security

What are the signs that hashing is being used incorrectly in application security?

← Back to all FAQ
By NHI Mgmt Group Editorial Team Updated September 25, 2026 Domain: Cyber Security

A common sign is seeing passwords stored with weak, deprecated, or unsalted hashing, which leaves them vulnerable to brute force and table-based attacks. Another warning is treating hashing as if it protects confidentiality. Hashing does not hide data for later recovery, so if the business needs retrieval, encryption is the appropriate control instead.

How to Spot Incorrect Hashing in Application Security

Incorrect hashing usually shows up when a team reaches for a one-way function but uses it as a general storage control. The practical warning signs are weak or outdated hash choices, missing salts for password storage, fast hashes used where slow password hashing is needed, and designs that expect hashes to preserve recoverability. That combination creates avoidable exposure and often signals a confused data-protection model.

For application security teams, the first thing to inspect is whether the hash is being used for integrity, password verification, or something else. Those uses are not interchangeable. A hash that is acceptable for checking file integrity may be entirely unsuitable for protecting user credentials, especially if the implementation omits per-record salt, uses a generic cryptographic digest, or relies on a format that remains vulnerable to offline cracking after a breach.

A second sign is when hashing is described as if it “secures” sensitive data that must later be read back. Hashing is irreversible by design, so if the requirement is confidentiality with future retrieval, encryption is the right control. That distinction matters because a team can pass a superficial design review while still building a system that cannot meet its business or security requirement.

What Bad Hashing Looks Like in Practice

One common failure pattern is password storage with outdated algorithms such as MD5 or SHA-1, or with a general-purpose hash used directly for credential storage. Those hashes are too fast for password protection and are easier to crack at scale. A more subtle version is a modern hash that is technically strong but still used without salting, which makes identical passwords produce identical outputs and enables rainbow-table style attacks and cross-account comparison.

Another pattern is confusing hash output with secrecy. If developers store personal data, tokens, or other sensitive values in hashed form and then expect to retrieve them later, the design is already wrong for the stated goal. Hashing is useful when the objective is verification, comparison, or tamper detection, not concealment with recovery. When the system needs the original value, the implementation usually needs encryption, tokenization, or a different data-handling pattern instead.

It is also a red flag when a product mixes security goals without separating them. For example, a hash may be used to compare records, but the surrounding system may still need access controls, secure storage, and key management for adjacent encrypted fields. Hashing is one control in a larger design, and misuse often appears when teams treat it as a substitute for the rest of the security model.

Why the Mistake Persists and What It Exposes

Hashing mistakes persist because the API surface makes them look simple. Developers may reach for a library function, assume any hash is adequate, and stop before asking what threat model the control is meant to address. That shortcut is especially risky for passwords and secrets because attackers can take stolen hashes offline, test weak candidates at scale, and recover a surprising number of accounts if the hashes are fast, unsalted, or reused.

Incorrect hashing also creates a governance problem: teams may believe they have protected data when they have only transformed it. That false confidence affects incident response, breach impact analysis, and privacy decisions because the organisation may overstate the resistance of the stored data to disclosure. In practice, the value of a hash depends on the purpose, the algorithm, the salt strategy, and whether the system can tolerate offline attack after compromise.

Risk and Threat Considerations

Incorrect hashing most often becomes material when an attacker can obtain the stored values and work on them offline. Weak, fast, or unsalted hashes reduce the cost of brute force, dictionary attacks, and table-based cracking, which can turn a storage exposure into account compromise.

Failure mechanism: The implementation uses a general-purpose digest, omits per-record salting, or treats hashing as a confidentiality control, so captured values remain practical to reverse through guessing or comparison.

Impact: Password recovery, credential stuffing, and broader account takeover become more likely, and sensitive fields may be left without a control that can actually preserve confidentiality and allow retrieval.

Standards & Framework Alignment

This section maps relevant standards and security frameworks to the operational risks and controls described in this guidance.

OWASP ASVS and NIST SP 800-53 Rev 5 set the governance and control requirements practitioners need to meet.

FrameworkControl / ReferenceRelevance
OWASP ASVSV6 — AuthenticationCovers password and verifier requirements tied to secure credential handling.
V11 — CryptographyApplies where hashing is selected or misused as a cryptographic protection mechanism.
Recommendation — Use V6 to require purpose-built password hashing and reject weak credential storage patterns. Apply V11 to verify the algorithm and storage pattern match the data-protection goal.
NIST SP 800-53 Rev 5IA-5 — Authenticator ManagementAddresses credential lifecycle and secure storage of authentication material.
SC-28 — Protection of Information at RestRelevant when hashing is incorrectly used in place of protection for stored sensitive data.
SI-7 — Software, Firmware, and Information IntegritySupports hash-based integrity checks when hashing is used correctly for tamper detection.
Recommendation — Enforce IA-5 to manage stored authenticators with approved hashing and rotation practices. Use SC-28 to require encryption or equivalent protection for data that must remain confidential. Use SI-7 to reserve hashing for integrity verification rather than secrecy claims.

Practitioner Guidance

What to verify: Confirm the control objective before approving the design. If the system needs later recovery of the original value, hashing is the wrong primitive; if it only needs verification or integrity, the chosen algorithm and storage pattern must still match the threat model.

Decision rule: If the value protects access, use a purpose-built password hashing approach with a unique salt and a work factor appropriate to current offline attack cost. If the value must be recovered, move the design toward encryption or tokenization instead of trying to stretch hashing beyond its role.

Practitioner takeaway: The key judgement is whether the implementation matches the security job the data actually has to do, because hashing fails most dangerously when teams treat it as a universal substitute for confidentiality.

Deepen Your Knowledge

Sign up to our weekly newsletter — get 33% off our NHI Foundation Level Course

    NHIMG Editorial Note
    Reviewed and updated by the NHIMG editorial team on September 25, 2026.
    NHI Mgmt Group — the #1 independent authority on Non-Human Identity, IAM, and Agentic AI security. nhimg.org