Ver Mensaje Individual
  #7  
Antiguo 22-10-2015
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por aguml Ver Mensaje
¿me puedes explicar donde estaba el fallo exactamente para que diera resultados no validos?
La codificación era correcta pero no la descodificación. El problema estaba aquí:
Código PHP:
total = (pos pos2) % letras.length(); 
Si se sobrepasó la longitud de letras al codificar, (pos-pos2) no elimina la semilla correctamente y la resta será negativa. Dado que pos1+pos2 nunca puede ser mayor que 2*letras.length(), la solución es esta:
Código PHP:
total = (letras.length() + pos pos2) % letras.length(); 

Saludos.
Responder Con Cita