( c'est un peu bourrin ta méthode Whidou. Tu ne peux pas simplement détecter les 0 lorsque tu compares les caractères, et si la i-iém coordonnée est un 0 bha ça veut dire que c'est finit. Comme ça tu travail avec une longueur fixe suffisante, 20 ça devrait aller pour un mdp )
Sinon quitte à utiliser ta méthode pour correctement dimensionner, et si il n'y a pas de caractère de code 0, autant procéder dans l'autre sens (i.e s'arrêter au premier 0 trouvé):
99->dim(..
1->A
While (A<99 and llog(A))
A+1->A
End
A->dim(LLog
si c'est justifié statistiquement –c'est à dire que tes mdp sont en moyenne plus long que 99/2 – tu peux faire la même chose à partir de la fin: auquel cas tu t'arrêtes au premier non-zéro trouvé.
edit:
./5 : en effet