In generale
Dipende dalle informazioni che stai ricevendo che l'autore dell'attacco ha.
Per prima cosa, supponiamo che l'attaccante sia cieco, e forse provi a craccare una grande discarica di account violati, senza sapere che hai usato quell'algoritmo specifico. Allora verrai protetto meglio se scartati 123456
se si presenta, o in modo più realistico, password che sono solo minuscole, parole di dizionario, ecc. Questo è per la semplice ragione che qualsiasi attaccante è obbligato a provare quelle prime poiché in generale sono più comuni.
D'altra parte, se l'utente malintenzionato sa che è stato utilizzato il tuo algoritmo, scartare le password renderà più semplice il suo lavoro. Se scarichi il 10% delle password, ovvero il 10% non deve tentare, risparmiando il suo 10% di tempo in media.
Quindi quale di questi due scenari è più probabile? Direi il primo nella maggior parte dei casi, ma solo tu puoi determinare quale sia il tuo modello di minaccia.
Un esempio matematico
Facciamo un po 'di matematica per vedere quante password verrebbero effettivamente rilasciate. Diciamo che i caratteri sono presi da tre gruppi (lettere maiuscole, minuscole, numeri + caratteri speciali) e diciamo che c'è un numero uguale di personaggi in ogni gruppo. Inoltre, supponiamo che tu abbia bisogno di password per avere almeno un carattere per ogni gruppo. Quale frazione di password faresti cadere?
Se ottengo i miei calcoli corretti, è 3*(2/3)^L
dove L
è la lunghezza della password. Per L=10
ottieni il 5%. Per L=20
ottieni lo 0,1%.
A meno che tu non sia completamente sicuro che l'unica minaccia sia un utente malintenzionato che sa come è stata generata la password (trovo difficile immaginare come potresti essere quello), direi che la riduzione dello spazio di ricerca dello 0,1% ne vale la pena .