In generale la complessità non è importante quanto la lunghezza, tuttavia la complessità e la lunghezza aumentano la protezione contro i tentativi di password di forza bruta pura.
Il tuo esempio di! Pf-4 verrebbe decifrato rapidamente a prescindere dalla "complessità" perché il numero di tentativi di indovinare sarebbe al massimo 7,820,126,495 (95 ^ 5 + 95 ^ 4 + 95 ^ 3 + 95 ^ 2 + 95) 95 è il numero di possibili caratteri. Un core i7 lo farà in un attimo.
Per ogni aumento della lunghezza della password, si aumenta il numero di ipotesi richieste da un livello di potenza. Il vero problema è che la maggior parte dei password cracker che sanno quello che stanno facendo usano attacchi dizionario personalizzati e attacchi di forza bruta che possono compromettere anche le frasi a lungo passaggio abbastanza facilmente.
Può anche dipendere da quale hash crittografico è stato usato per cancellare le password. Ci sono noti problemi di sicurezza con alcuni hash come MD5 e ci sono hash più forti come bcrypt che sono considerati algoritmi di hashing "lenti" perché richiedono più tempo per controllare ogni hash.
Ti consiglierei di leggere questo articolo sulla password cracking.
link