Skip to content

Password dictionary length and size for brute-force

Script

$ python3 -c "
full8  = 94**8
full12 = 94**12

print(f'Reference A: 94^8  = {full8:.3e}')
print(f'Reference B: 94^12 = {full12:.3e}')
print()

print(f'{'Len':>4} | {'62^n combos':>16} | {'vs 94^8 (worse/better)':>24} | {'vs 94^12 (worse/better)':>25}')
print('-' * 80)
for n in range(8, 25):
    val = 62**n
    r8  = val / full8
    r12 = val / full12
    cmp8  = f'{r8:.2e}x better'  if r8  >= 1 else f'{1/r8:.2e}x worse'
    cmp12 = f'{r12:.2e}x better' if r12 >= 1 else f'{1/r12:.2e}x worse'
    mark8  = '<-- BETTER' if r8  >= 1 and (n == 8 or 62**(n-1) < full8)  else ''
    mark12 = '<-- BETTER' if r12 >= 1 and (n == 8 or 62**(n-1) < full12) else ''
    print(f'{n:>4} | {val:>16.3e} | {cmp8:>24} | {cmp12:>25} {mark12}{mark8}')
"

Results

Reference A: 94^8  = 6.096e+15
Reference B: 94^12 = 4.759e+23

 Len |      62^n combos |   vs 94^8 (worse/better) |   vs 94^12 (worse/better)
--------------------------------------------------------------------------------
   8 |        2.183e+14 |         2.79e+01x  worse |          2.18e+09x  worse 
   9 |        1.354e+16 |         2.22e+00x better |          3.52e+07x  worse <-- BETTER
  10 |        8.393e+17 |         1.38e+02x better |          5.67e+05x  worse 
  11 |        5.204e+19 |         8.54e+03x better |          9.15e+03x  worse 
  12 |        3.226e+21 |         5.29e+05x better |          1.48e+02x  worse 
  13 |        2.000e+23 |         3.28e+07x better |          2.38e+00x  worse 
  14 |        1.240e+25 |         2.03e+09x better |          2.61e+01x better <-- BETTER
  15 |        7.689e+26 |         1.26e+11x better |          1.62e+03x better 
  16 |        4.767e+28 |         7.82e+12x better |          1.00e+05x better 
  17 |        2.956e+30 |         4.85e+14x better |          6.21e+06x better 
  18 |        1.833e+32 |         3.01e+16x better |          3.85e+08x better 
  19 |        1.136e+34 |         1.86e+18x better |          2.39e+10x better 
  20 |        7.044e+35 |         1.16e+20x better |          1.48e+12x better 
  21 |        4.367e+37 |         7.16e+21x better |          9.18e+13x better 
  22 |        2.708e+39 |         4.44e+23x better |          5.69e+15x better 
  23 |        1.679e+41 |         2.75e+25x better |          3.53e+17x better 
  24 |        1.041e+43 |         1.71e+27x better |          2.19e+19x better