Questo non è detto, dipende dai metodi di criptazione.
Banalmente, possono aver memorizzato sul database in modo criptato anche specifiche coppie di caratteri della password da poter confrontare, dopo criptazione, con la coppia di caratteri che tu dici all'operatore.
Esempio, metti che l'algoritmo di criptazione sia md5 (ma
spero di no) e che la tua password sia qwerty (se qualcuno ha veramente come password "qwerty" vada a cambiarla
)
md5("querty") = d8578edf8458ce06fbc5bb76a58c5ca4 (memorizzata sul db)
primo e terzo carattere: qe (NON memorizzata su db)
md5("qe") = 4d6e7051b02397d7733ea9a222fdb8e0 (memorizzata su db)
... e magari anche altre coppie
L'operatore chiede (ad esempio) il primo e terzo carattere. Lo inserisce in una mascherina del terminale ed il software lo cripta e lo confronta con il valore criptato presente nel database. Se corrisponde, il check è positivo e l'utente è verificato; se il check è negativo, l'utente non è verificato. In ogni caso sul database è memorizzato il valore criptato. La debolezza sta piuttosto nel fatto che all'operatore, potenzialmente infedele, la coppia di caratteri va detta in chiaro. Debolezza che, ripeto, da sola non compromette nulla ma che in teoria potrebbe, in combinazione con altre falle.
Ah! Ho detto che
spero che l'algoritmo non sia banale come md5 perché basta che cercate i valori criptati che ho messo prima, come esempio, su Google ché trovate la password e le coppie di caratteri in chiaro