Il tuo approccio a questo problema è pessimo. Stai cercando di trovare lettere nella complessità temporale lineare:   O(n)   . Confronto di lettere, una dopo l'altra. Significa che nel modello pessimistico devi controllare l'intero alfabeto. Supponiamo che il tuo alfabeto sia composto solo da lettere minuscole:   {a,z}    e la tua password è   zzz   . Avrai 26 tentativi di trovare la prima lettera, 26 tentativi di trovare la seconda lettera e 26 tentativi di trovare l'ultima. 
 Come accennato sopra, puoi accelerare questo processo. Si noti che l'ordine delle lettere dell'alfabeto è sempre lo stesso (le lettere sono ordinate). Puoi utilizzare la ricerca binaria con   O(log(n))    di complessità temporale. Questo metodo è usato dalla maggior parte delle persone. Tuttavia, puoi anche accelerarlo. 
 Se sappiamo, che la password di ricerca è la parola del dizionario, potremmo usare l'analisi linguistica per costruire i nostri tentativi di iniezione in sql cieca. Potremmo usare le nostre conoscenze sulla frequenza delle lettere nel testo (ad esempio, la lettera più frequente in inglese è "e"). Potremmo anche usare la conoscenza: qual è la probabilità che dopo la lettera X, si verifichi la lettera Y. Potremmo anche provare a indovinare quante lettere X sono nella nostra parola. In questo approccio le espressioni regolari possono aiutarci molto. Definiamo l'intervallo di caratteri a cui verranno associate le funzioni   LIKE    (per   MSSQL   ) o   REGEXP    (per   MySQL   ). Una spiegazione abbastanza buona dell'espressione regolare negli attacchi sql injection potrebbe essere trovata qui:  link