Group
  • Security

    Verify passwords are hashed correctly

    Confirms passwords are hashed with bcrypt or argon2, never stored in plaintext, and never logged.

    • Improve quality
    • Plan & validate
    • Beginner
    • General

Free Prompt

Review how my app stores user passwords. Look at the signup, login, password change, and any seed or fixture code that creates users. Confirm all of the following: passwords are hashed with bcrypt (cost factor 10 or higher) or argon2, never stored in plaintext or with fast hashes like MD5 or SHA-256, never written to logs or error messages, and never returned in any API response (including the hashed version). If you find plaintext storage or a weak hash, migrate the hashing code to bcrypt or argon2 and add a rehash-on-login path so existing users get upgraded transparently when they next sign in. Do not change the login or signup UI. Do not force a password reset for all users unless you find evidence plaintext passwords are actually stored, in which case flag it and propose a migration plan before making changes. Show me each location where passwords are handled, what you found there, and any changes you applied. End with a verification checklist: how to create a test user and confirm the stored value is a proper hash, and how to confirm the hash never appears in responses or logs.

What This Does / How This Helps

Checks every place passwords touch your code: signup, login, password changes, and seed data. It confirms a real password hash is in use (bcrypt or argon2) and that passwords never leak into logs, errors, or API responses. This matters because vibe-coded apps sometimes store passwords in plaintext or with fast hashes like SHA-256, and nobody notices until the database leaks. With plaintext or weak hashes, a single database dump hands every user's password to whoever grabbed it, and those passwords get tried on every other site your users use. If weak hashing is found, the prompt adds a rehash-on-login upgrade path so existing users get fixed automatically the next time they sign in, with no forced mass reset.

Want to skip doing this by hand?

Fortivibe audits your app for all of the areas these prompts cover (and more).

See What We Check

Related Prompts