Ver Mensaje Individual
  #5  
Antiguo 05-05-2011
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 835
Reputación: 24
gatosoft Va camino a la fama
Varias observaciones...

1) seria prudente encerrar cada condicion compuesta de los if en paréntesis...

Código Delphi [-]
  if (vActChar in vLetras_Up_Set) and not vLetraMayuscContada then

Código Delphi [-]
 if (vActChar in vLetras_Up_Set) and (not vLetraMayuscContada) then

Solo un capricho, pero la experiencia despues te dirá por que...

2) tienes un problema de logica con los if.. else if...

por ejemplo, si tienes un password como: "hola"

entonces... la primera vez evalua y encuentra una minuscula..
la segunda vez que pasa por el for, no entra a la minuscula, sino que va derecho al caracter... y en adelante no cuenta nada... total: una minuscula y un caracter para la palabra "hola".

dices que no llega a evaluar carcateres?? es poco probable, pues casi todo va a parar alla... hiciste un seguimiento paso a paso?? has revisado lo que almacenan los conjuntos... es decir, no es lo mismo si trabajas con delphi 7 a delphi 2010, pues en este útlimo hay cambios de char a ansichar... revisa este tema


3) Veo que si el password es menor de 8 caracteres automaticamente reseteas la coplejidad a uno... yo preferiria dar pesos a cada condicion, es decir:

1) que tenga mas de 8 caracteres: 30 puntos
2) que tenga una minuscula: 5 puntos
3) que tenga una mayuscula: 20 puntos
4) que tenga un carcater: 30 puntos.
5) que tenga un numero: 15 puntos

total 100 puntos... y evaluas la complejidad segun la puntuación... es casi lo mismo... pero...
Responder Con Cita