Why AI tools produce this: AI coding tools generate this anti-pattern by default, it appears in a large share of AI-written auth code.
Why this matters
The digest is MD5 (via the md5 crate) or SHA-1/SHA-256/SHA-512 (via the RustCrypto sha1/sha2 crates). These algorithms are designed to be fast, which makes offline brute-force and rainbow-table attacks cheap; they are NOT suitable for storing passwords (CWE-916).
Use a dedicated, slow password-hashing function with a per-password salt and a tunable work factor: Argon2 (argon2 crate, Argon2::default().hash_password(...)), bcrypt (bcrypt::hash(...)), or scrypt (scrypt crate). These resist brute-force by design.
If a finding is a genuine false positive, scope the suppression to the exact line and leave a reason, never disable the rule project-wide. Disable directives are line-scoped by design.