Field | Value | Comment | Copy |
---|---|---|---|
{{ row.label }} | {{ row.value }} | {{ row.comment }} |
Machine | Rate (guesses/s) | Estimated time | Copy |
---|---|---|---|
{{ c.machine }} | {{ c.rateDisplay }} | {{ c.time }} |
Metric | Value | Copy |
---|---|---|
Entropy bits (log₂(charsetⁿ)) | {{ entropyBits.toFixed(1) }} | |
Interpretation | {{ entropyComment }} |
Password strength is the practical measure of how hard a guesser would find it to discover a secret in realistic time. People also say password quality, and many reports summarize it as entropy in bits. Entropy reflects the size of the character pool and the length, capturing how many combinations a brute‑force strategy must try.
You enter any password and receive a plain language score with supporting metrics and badges with export options. The engine profiles character classes and length then estimates entropy and checks a common wordlist to flag risky picks. It also models crack time at several attack speeds so you can compare protection across contexts and document results.
As one example, Grape!2025 mixes case, digits and a symbol, landing near 65.7 bits of entropy. That maps to roughly 18973 years on a typical desktop under brute force only within this model. Breaches, reuse or slow hashing can shift risk so treat these figures as directional guidance rather than ironclad guarantees in practice today.
Stronger outcomes come from length first, then variety used judiciously. Avoid short patterns, obvious sequences, or look‑alike years. Passphrases made of unrelated words can be memorable without being predictable, and adding a slow hashing factor helps you compare sites that harden verification with expensive key derivation functions. Check for repeats and dictionary hits before relying on a secret.
The calculator evaluates password strength using a mix of heuristic scoring (0–4), an entropy estimate $begin:math:text$H = n \\log_{2} S$end:math:text$ from length $begin:math:text$n$end:math:text$ and inferred character‑set size $begin:math:text$S$end:math:text$, a dictionary check against a top 10k list, and brute‑force crack‑time projections at fixed guessing rates. Outputs include a description label, strength percent, entropy bits with interpretation bands, warnings, property rows, machine‑specific time estimates, and CSV or JSON exports. Assumptions include uniform random selection across the detected set, exhaustive search, and no prior knowledge. Computations are deterministic for identical inputs.
Symbol | Meaning | Unit/Datatype | Source |
---|---|---|---|
n | Password length | characters | Input |
S | Character set size | count | Derived |
H | Entropy | bits | Derived |
rate | Guess rate after slowdown | guesses/s | Derived |
slowdown | Hash slowdown factor | × | Input |
lnSeconds | Natural log of seconds to crack | ln(s) | Derived |
time | Displayed crack‑time | mins/hrs/days/yrs | Derived |
Threshold Band | Lower Bound | Upper Bound | Label |
---|---|---|---|
Very weak | 0 | < 40 | Very weak |
Weak | 40 | < 60 | Weak |
Reasonable | 60 | < 80 | Reasonable |
Strong | 80 | < 100 | Strong |
Very strong | 100 | ∞ | Very strong |
Bands help you prioritize changes. If a value sits near a boundary, consider adding length or reducing predictable patterns before relying on the label.
Constant | Value | Unit | Source | Notes |
---|---|---|---|---|
Standard Desktop PC | 1e8 | guesses/s | Preset | Base estimate |
Fast Desktop PC | 4e8 | guesses/s | Preset | Higher end |
GPU | 1e10 | guesses/s | Preset | Single GPU |
Fast GPU | 3e10 | guesses/s | Preset | Optimized |
Parallel GPUs | 1e12 | guesses/s | Preset | Clustered |
Medium‑size Botnet | 1e13 | guesses/s | Preset | Distributed |
LN_MINUTE | ln(60) | ln(s) | Constant | Minute pivot |
LN_HOUR | ln(3600) | ln(s) | Constant | Hour pivot |
LN_DAY | ln(86400) | ln(s) | Constant | Day pivot |
LN_YEAR | ln(31557600) | ln(s) | Constant | Year ≈ 365.25 days |
Field | Type | Min | Max | Step/Pattern | Error Text | Placeholder |
---|---|---|---|---|---|---|
Password | String | 0 | — | — | — | Type a password… |
Hash slowdown factor | Number | 1 | — | Step 1 | — | — |
Input | Accepted Families | Output | Encoding/Precision | Rounding |
---|---|---|---|---|
Password text | UTF‑8 string | Metrics, warnings, tables | Bits, guesses/s, time units | As above |
Hash slowdown factor | Integer ≥ 1 | Crack‑time scaling | Integer × | Nearest integer |
Exports | CSV, JSON | Clipboard/file | JSON indented 2 spaces | Exact values |
Input Grape!2025
. Classes: uppercase, lowercase, digits, symbol. Length 10; inferred set size 95.
Standard Desktop PC estimate: ≈ 18973 yrs; slowdown factor increases time proportionally.
No data is transmitted or stored server‑side. A public dictionary file is fetched to enable common‑password detection; your input never leaves the page.
Follow these steps to assess and export results.
Grape!2025
and set slowdown to 100000
to see how estimates change.Use the results to decide whether to lengthen, diversify, or replace the password.
No. Analysis runs in your browser, and your input is not sent anywhere. The common‑password list may be fetched to your cache for lookups.
They reflect exhaustive brute force over the detected character set at preset guess rates. Slowdown scales those rates. Targeted attacks, reuse, and leaks can reduce real protection.
Entropy is in bits. Guess rates are in guesses per second. Exports are CSV or JSON with two‑space indentation for readability.
Yes, core analysis works offline. If the dictionary list was not cached earlier, the dictionary tab will skip matches until a connection is available.
No sign‑in is required, and nothing is tied to identity.
The Entropy tab labels 80–100 bits as strong and 100+ bits as very strong. Aim higher if secrets are long‑lived or high‑value.