Cita:
Empezado por aguml
¿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.