viernes, 13 de mayo de 2022

JavaScript: cifrado de sustitución general

En este post, te presento una herramienta en JavaScript para que puedas cifrar tus propios mensajes secretos e incluso descifrarlos. Lo único que tienes que hacer es escribir tu texto e indicar qué letras deseas sustituir por qué otras (recuerda que no solemos usar tildes en criptografía). Para más información sobre el método de resolución de este tipo de criptogramas, mira el anterior post.


A B C D E F G H I
J K L M N Ñ O P Q
R S T U V W X Y Z


El código que he escrito no es muy complicado, puedes echarle un ojo, si lo deseas, aquí abajo. Cada vez que hay un cambio, el programa recalcula todo de nuevo. Si trabajásemos con un texto muy largo y muchos cambios de letras consecutivos, habría que modificar ligeramente el código para que fuera más eficiente, pero para lo que lo necesitamos, funciona bien.

var alfabeto = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
function recalcularTexto(){
  var texto = document.getElementById("textoACifrar").value.toUpperCase();
  if(texto == ""){
    document.getElementById("textoCifrado").innerHTML = "";
    return;
  }
  var alfabeto2 = "", i;
  for(i = 0; i < alfabeto.length; i++){
    alfabeto2 += document.getElementById("cifrar" +
                 alfabeto.charAt(i)).value.toUpperCase();
  }
  var texto2 = texto, j;
  var index;
  for(i = 0; i < alfabeto.length; i++){
    if(alfabeto.charAt(i) != alfabeto2.charAt(i)){
	  j = 0;
	  while((index = texto.indexOf(alfabeto.charAt(i), j)) > -1){
            texto2 = texto2.substring(0,index) +
                     alfabeto2.charAt(i) + texto2.substring(index+1);
            j = index + 1;
      }
    }
  }
  document.getElementById("textoCifrado").innerHTML = texto2;
}

No hay comentarios:

Publicar un comentario