How to Generate and Hash a Secure Password
Set length and character types
Drag the length slider and toggle uppercase, lowercase, numbers and symbols. Each generated value gets a Weak, Fair, Good or Strong rating based on its length and the variety of character classes it contains.
Generate and copy
Set how many passwords you want (up to 20) and click Generate. Every value is produced with the browser Web Crypto API (crypto.getRandomValues), and the Copy button next to each row places it on your clipboard.
Hash or verify if needed
Paste any value into the Hash Generator to see its MD5, SHA-1, SHA-256 and SHA-512 output instantly, create a bcrypt hash with a chosen cost factor, or use the verifier to confirm a plain value matches an existing hash.
Which Hash Algorithm to Use
This tool computes MD5, SHA-1, SHA-256, SHA-512 and bcrypt. They are not interchangeable: fast hashes suit checksums, while a deliberately slow function suits stored passwords. Use this table to match the algorithm to the job.
| Algorithm | Output length | Speed | Best for | Avoid for |
|---|---|---|---|---|
| MD5 | 32 hex chars | Very fast | Legacy checksums, file fingerprints, test data | Storing passwords (broken) |
| SHA-1 | 40 hex chars | Very fast | Legacy integrity checks, Git-style identifiers | Collision-sensitive use |
| SHA-256 | 64 hex chars | Fast | File integrity, checksums, signatures | Direct password storage |
| SHA-512 | 128 hex chars | Fast | Strong integrity checks on large data | Direct password storage |
| bcrypt | 60 chars with salt | Slow (tunable) | Storing user passwords, PHP and Laravel hashes | Quick checksums or large files |
Which Part of the Tool Fits Your Task
You need a strong password
Use the Password Generator. Pick a length of 16 or more, enable all four character types, and watch for the Strong rating. The Web Crypto API supplies the randomness.
You are checking a file or checksum
Use the Hash Generator. Paste the text and read off the MD5, SHA-1, SHA-256 or SHA-512 value, then compare it against the checksum the source published.
You are storing passwords in a database
Use the bcrypt generator. Set a cost factor (10 is the common default), generate the hash, and store the full $2 string. bcrypt is built to be slow against brute force.
You are debugging a login
Use the verifier. Paste the plain text and the hash, pick the algorithm, and confirm whether they match. The bcrypt verifier accepts PHP password_hash and Laravel output.
Common Problems and Fixes
The Copy button does not seem to work
Clipboard access requires a secure context. Make sure you are on the https page and that your browser has not blocked clipboard permission for the site, then click Copy again. The button shows Copied when it succeeds.
My password is rated only Weak or Fair
The rating rises with length and character variety. Increase the length to 12 or more and enable uppercase, lowercase, numbers and symbols together. With all four classes at 16 characters or more you reach Strong.
bcrypt hashing takes several seconds
That is expected. bcrypt is intentionally slow, and a higher cost factor multiplies the time. Cost 4 is near instant for testing, while 12 to 14 can take several seconds because all of the work runs in your browser.
A SHA hash will not verify even though it looks right
Confirm you selected the matching algorithm pill (MD5, SHA-1, SHA-256 or SHA-512). Hashes are compared in lowercase, so case is handled, but a trailing space or a different input encoding will produce a different digest.