TL;DR

Another option is passwordless

Resources

Example of what not to do

Try to enter a valid Password:



Hash speed

1 kH/s is 1,000 (one thousand) hashes per second.
1 MH/s is 1,000,000 (one million) hashes per second.
1 GH/s is 1,000,000,000 (one billion) hashes per second.
1 TH/s is 1,000,000,000,000 (one trillion) hashes per second.
1 PH/s is 1,000,000,000,000,000 (one quadrillion) hashes per second.
1 EH/s is 1,000,000,000,000,000,000 (one quintillion) hashes per second.
Source: https://bitcoin.stackexchange.com/questions/9219/what-is-the-difference-between-kh-s-mh-s-and-gh-s#9220

My 2012 laptop can hash 284.6 Million MD5 hashes per second (284.6 MH/s).

Now the guys that hash passwords for a living:

In case you were wondering what 300 kg of @NVIDIAGeForce GPUs looks like. I love this job :) pic.twitter.com/EgPK2o00a3

— Jeremi M Gosney (@jmgosney) March 1, 2017

@vortexau @NVIDIAGeForce should be ~ 7 TH/s NTLM, 4 TH/s MD5

— Jeremi M Gosney (@jmgosney) March 2, 2017


That is 4 Trillion MD5 hashes per second. Let’s see how long it would take to retrieve passwords hashed with MD5 using brute-force:

Description Example Password Example Password Duration
8 character password (lower-case letters) slrudowq password about 53 milliseconds
search space / hashes per second = brute-force time in seconds
217,180,147,158 / 4,000,000,000,000 = 0.05429503679 seconds = 54.3 milliseconds
8 character password (numbers, letters) m7wY8sDs P4ssW0rd about 1 minute
221,919,451,578,090 / 4,000,000,000,000 = 55.4798628945 seconds
8 character password (numbers, letters, symbols) $QWt+4V: P4$$W@rd about 30 minutes
6,704,780,954,517,120 / 4,000,000,000,000 = 1,676 seconds = 27 minutes 56 seconds
10 character password (numbers, letters, symbols) FN*vX5t8=o P4$$W@rd10 about half a year
60,510,648,114,517,017,120 / 4,000,000,000,000 = 15,127,662 seconds = 25.01 weeks
14 character password (lower-case letters) guxpzsvhzpizgz passwordqwerty about half a year
67,090,373,691,429,037,014 / 4,000,000,000,000 = 16,772,593 seconds = 27.73 weeks
12 character password (numbers, letters, symbols) Tc0rBVK,\s]9 Tr0ub4dour&3 about 43 centuries
546,108,599,233,516,079,517,120 / 4,000,000,000,000 = 136,527,149,808.379 seconds = 225,739 weeks
28 character password (lower-case letters, symbols)
4 random words / diceware
zorn snug woke stable jockey correct horse battery stable really long time if using brute-force
Brute-force: 3.90x10^49 / 4,000,000,000,000 = 9.75x10^36 seconds = 3,091,704,718,417,047,290,000,000,000 centuries
Diceware Dictionary: 7776 x 7776 x 7776 x 7776 x 7776 / 4,000,000,000,000 = 7,107,572.00748243 seconds = 11.75 weeks

Try it yourself at: https://www.grc.com/haystack.htm

Now most password cracking is not done with brute-force. It is done with password lists, mutations on the lists, rainbow tables and password masks. This reduces the time to guess the correct password considerably.

Tr0ub4dour&3, password, P4ssW0rd, P4$$W@rd, P4$$W@rd10 and passwordqwerty, would all take less than a second with the same set-up. But FN*vX5t8=o and guxpzsvhzpizgz are completely random so it would still take about half a year with brute-force.

Try it yourself with zxcvbn