Now my question is: This website doesn't seem to take into account dictionary attacks. Is there a website that can do both? I mean password number 3 (and perhaps more than this one) could be found much easier than brute-forcing.
So on examination, it seems all that site is doing is making sets of "lowercase", "uppercase", "numbers", "symbols", and then calculating a strength based on number of characters and number of different sets you use. So any string of 9 characters including lowercase letters and symbols will be given the exact same strength. For example, this string "~gm$r!)zf" is also given 1 month and 6 hours, despite being significantly more secure than "stay away". So yeah, a poor way of calculating password strength.
I've never really used password strength sites like this, but a quick search found another one which does take in to account dictionary words -
https://www.passwordmonster.com/For "stay away" it gives 114 seconds, and correctly identifies two dictionary words.
For "~gm$r!)zf" it gives 931 years.
However, this also seems very inaccurate to me. With 26 lowercase letters and 33 symbols in the standard ASCII set, then that second password has 59
9 combinations, which is around 53 bits. There is no way it would take almost 1,000 years to crack a 53 bit password.
The best passwords, and the most accurate way of calculating strength, are those which are completely random and draw from lowercase, uppercase, numbers, and symbols, without any patterns. Then you can simply do 95
x, where x is the length of your password. A 20 character password of this format gives you >128 bits of security, which is what you should be aiming for. As soon as you replace a string of those characters with a dictionary word, then how much this decreases your security is unpredictable.