Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

DUDA SOBRE EL DESAFIO

tengo un input para el texto para encriptar/desencriptar pero cuando intento desencriptar el texto que dejaron como prueba no me funciona, pues no lo desencripta a menos que haya sido un valor ingresado sin encriptar, luego encriptado y posteriormente desencriptado. No se como lograr que al copiarlo directamente me lo desencripte. Aquí le dejo la lógica del código que implemente para desencriptar, para me me asesoren:

function desencriptar() { let textoEntrada = document.getElementById("texto").value;

 if (!validarTexto(textoEntrada)) {
      alert("Por favor, ingrese solo cadena de caracteres y en minúsculas.");
      return;
 }
 const textoDesencriptado = mapearPalabras(textoEntrada, invertirTabla(tablaEncriptacion));
 document.getElementById("resultado").value = textoDesencriptado;

}

function generarValorAleatorio(palabra) { const criterio = { 'e': 'enter', 'i': 'imes', 'a': 'ai', 'o': 'ober', 'u': 'ufat' };

 const caracteres = palabra.split('');
 const valorAleatorio = caracteres.map(caracter => criterio[caracter] || caracter).join('');

 return valorAleatorio;

}

function invertirTabla(tabla) { const resultado = {}; for (const clave in tabla) { if (tabla.hasOwnProperty(clave)) { resultado[tabla[clave]] = clave; } } return resultado; }

function mapearPalabras(texto, tablaMapeo) { const palabras = texto.split(/\b/);

 const textoMapeado = palabras.map(palabra => {
      return tablaMapeo[palabra.toLowerCase()] || palabra;
 }).join('');

 return textoMapeado;

}

2 respuestas

Hola, como estas?

Puedo ver que en el código, parece que estás utilizando una tabla de encriptación para mapear palabras y luego estás invirtiendo esa tabla para desencriptar el texto. Puede ser que si el texto encriptado no se generó utilizando la misma lógica y las mismas tablas, es posible que la desencriptación no funcione.

Puedes hacer lo siguiente:

  1. Mira que las tablas de encriptación y desencriptación sean las mismas.
  2. Ver si la función "generarValorAleatorio" esté generando el mismo tipo de cadena que se usa para encriptar.
  3. Algo que se utiliza mucho en programación y mirar que esta sucediendo en tú código, son mensajes de depuración.
function desencriptar() {
    let textoEntrada = document.getElementById("texto").value;

    if (!validarTexto(textoEntrada)) {
        alert("Por favor, ingrese solo cadena de caracteres y en minúsculas.");
        return;
    }

    console.log("Texto encriptado:", textoEntrada);

    const tablaDesencriptacion = invertirTabla(tablaEncriptacion);
    console.log("Tabla de desencriptación:", tablaDesencriptacion);

    const textoDesencriptado = mapearPalabras(textoEntrada, tablaDesencriptacion);
    console.log("Texto desencriptado:", textoDesencriptado);

    document.getElementById("resultado").value = textoDesencriptado;
}

Como puedes ver puedes adicionar console.log para mirar que datos estas capturando, y como estas haciendo el proceso de desencriptación. Espero haberte ayudado.

Buenas tardes, el código si encripta el mensaje a partir de un mensaje desencriptarlo, lo que no me funciona es colocar directamente un texto encriptado para solo desencriptarlo, no se como gestionar eso.