Password strength checker and generator

Check a password's entropy in bits and its average brute-force crack time at a chosen guess rate, or generate a password from a reproducible seed.

更新于 已验证的示例:6

Checked on this device only; nothing is stored.
= 10,000,000,000
试一试
Entropy
bits
Entropy: 72.3 bits
小数位数:1;取最近值,等距时取偶数末位
长度
11characters
Character pool
95symbols
Average guesses to find it
2.844 × 10²¹
Average time to crack in seconds
284,400,000,000s
Average time to crack
9,010 years
This assumes every character was picked at random. Dictionary words, names, dates and keyboard patterns are guessed far sooner, so treat the result as an upper bound.
The password is checked on this device and never stored or sent. The share link does include it, so don't share the link for a real password.

This password has 11 characters from a pool of 95, about 72.3 bits of entropy. An attacker making 10,000,000,000 guesses per second needs 9,010 years on average to find it by brute force.

Average time to crack (log₁₀ seconds)

Online, rate-limited9.01 × 10¹² yearsOnline, no rate limit9.01 × 10¹⁰ yearsOffline, slow hash9.01 × 10⁹ yearsOffline, fast hash9,010 yearsOffline, large cluster90.1 years
Average time to crack by attacker speed 行数:5
AttackerGuesses per secondAverage time
Online, rate-limited109.01 × 10¹² years
Online, no rate limit1,0009.01 × 10¹⁰ years
Offline, slow hash10,0009.01 × 10⁹ years
Offline, fast hash10,000,000,0009,010 years
Offline, large cluster1,000,000,000,00090.1 years
计算方法 S
  1. Character pool

    N=26 (lowercase)+26 (uppercase)+10 (digits)+33 (symbols and space)=95N = 26\ (\text{lowercase}) + 26\ (\text{uppercase}) + 10\ (\text{digits}) + 33\ (\text{symbols and space}) = 95
  2. Entropy

    H=Llog⁡2N=11×log⁡295=72.27 bitsH = L \log_2 N = 11 \times \log_2 95 = 72.27\ \text{bits}
  3. Average guesses

    2H−1=NL2=95112=2.844×10212^{H-1} = \frac{N^L}{2} = \frac{95^{11}}{2} = 2.844 \times 10^{21}

    On average an exhaustive search finds the password halfway through the space.

  4. Time at your attacker's speed

    t=2.844×102110,000,000,000 /s=284,400,000,000 st = \frac{2.844 \times 10^{21}}{10{,}000{,}000{,}000\ \text{/s}} = 284{,}400{,}000{,}000\ \text{s}

    About 9,010 years.

关于Password strength checker and generator

Entropy counts how many guesses a randomly chosen password could take: H = L × log2 N bits, where L is the length and N the size of the character pool (26 lowercase, 26 uppercase, 10 digits and 33 symbols including space). A brute-force search finds the password after N^L ÷ 2 guesses on average, so the crack time is that number divided by the attacker's guesses per second.

The default, Tr0ub4dor&3 from the xkcd comic 936, draws on all 95 printable ASCII characters across 11 positions, which gives 72.3 bits; at 10 billion guesses per second an exhaustive search would average 9,010 years.

That figure is an upper bound, because it assumes every character was picked at random. Tr0ub4dor&3 is a dictionary word with common substitutions, which the comic puts at about 28 bits. Generated passwords come from xoshiro256** and a 64-bit seed, so they hold at most 64 bits whatever their length.

计算示例

Tr0ub4dor&3

I want to
Check a password
Password
Tr0ub4dor&3
Attacker's guesses per second
1e10
Character pool
95 symbols
长度
11 characters
Entropy
72.3 bits
Average time to crack in seconds
284,400,000,000 s

核验来源:Python 3.8: 11 * math.log2(95) = 72.2684…; Decimal(95)**11 / 2 / Decimal('1e10') = 284400046138.22998… s

password

I want to
Check a password
Password
password
Attacker's guesses per second
1e10
Character pool
26 symbols
Entropy
37.6 bits
Average guesses to find it
104,400,000,000
Average time to crack in seconds
10.44 s

核验来源:Python 3.8: 8 * math.log2(26) = 37.6035…; 26**8 // 2 = 104413532288; / 1e10 = 10.4414 s

Single character (edge)

I want to
Check a password
Password
a
Attacker's guesses per second
10
Character pool
26 symbols
长度
1 character
Entropy
4.7 bits
Average guesses to find it
13
Average time to crack in seconds
1.3 s

核验来源:Python 3.8: math.log2(26) = 4.7004; 26 / 2 = 13 guesses; 13 / 10 = 1.3 s

Seeded 16-character password

I want to
Generate a password
长度
16
Seed
2026
Attacker's guesses per second
1e10
Generated password
Ro_y2y-Z^~5cQiBL
Character pool
94 symbols
Entropy
104.9 bits

核验来源:Independent Python 3.8 port of splitmix64.c and xoshiro256starstar.c with the same rejection rule; 16 * math.log2(94) = 104.87

常见问题

How long should a password be according to NIST?

NIST SP 800-63B-4 (2025) requires at least 15 characters for a password used on its own and at least 8 when it is one factor of a multi-factor login, and services should accept passwords of at least 64 characters. It forbids composition rules such as forced symbols and periodic forced changes, and instead requires checking each new password against a blocklist of common and breached passwords.

How long would it take to crack my password?

It depends on the pool, the length and the attacker's speed. A random 8-letter lowercase password has 26^8 ≈ 2.1 × 10^11 combinations and falls in about 10 seconds on average at 10 billion guesses per second, a fast offline attack on a leaked hash. A random 16-character password from 94 printable symbols would take about 5.9 × 10^13 years at the same speed.

What is password entropy?

Password entropy is the base-2 logarithm of the number of equally likely passwords the choosing method could produce, in bits; each extra bit doubles the guesses needed. A random password of length L from N symbols has L × log2 N bits, so 8 lowercase letters give 37.6 bits. It rates how the password was chosen, not how it looks, which is why human-picked words score far lower.

Is a passphrase better than a complex password?

Usually, if the words are chosen at random. Four words drawn from the EFF's 7,776-word dice list give 4 × log2 7,776 ≈ 51.7 bits, and six give 77.5 bits, more than a random 11-character password from all 95 printable characters (72.3 bits), while being easier to type and remember. Words a person picks, or a known quote, are far weaker.

Is this password generator safe for real accounts?

Only with a secret, random seed. The generator is reproducible by design: xoshiro256** seeded with a 64-bit number, so anyone who knows the seed and settings gets the same password, and it never holds more than 64 bits of entropy. For everyday accounts, a password manager's generator is the better choice because it draws from the operating system's cryptographic random source.

“Password strength checker and generator”有多准确?

准确性取决于输入值和方法的假设。十进制运算使用50位有效数字,但估算、数值方法和源数据的精度可能较低;显示时的舍入并不能消除这些限制。 已按独立来源核验的计算示例:6。 例如,“Tr0ub4dor&3”根据Python 3.8: 11 * math.log2(95) = 72.2684…; Decimal(95)**11 / 2 / Decimal('1e10') = 284400046138.22998… s进行核验。

这种方法出自哪里?

NIST SP 800-63B, Digital Identity Guidelines: Authentication — memorized secrets and rate limiting; Blackman & Vigna, Scrambled linear pseudorandom number generators, ACM TOMS 47(4), 2021 — xoshiro256** reference code.

关于此计算器

H=Llog⁡2Nt=2H−1R=NL2RR=guesses per second\begin{aligned} H &= L \log_2 N \\ t &= \frac{2^{H-1}}{R} = \frac{N^L}{2R} \\ R &= \text{guesses per second}\end{aligned}

来源

  1. NIST SP 800-63B, Digital Identity Guidelines: Authentication — memorized secrets and rate limiting
  2. Blackman & Vigna, Scrambled linear pseudorandom number generators, ACM TOMS 47(4), 2021 — xoshiro256** reference code

已对照来源验证

此计算器包含 6 个已解示例,答案来自独立来源。这些示例会在测试套件中运行,你也可以在此运行验证。

相关计算器