sábado, 3 de octubre de 2020

JavaScript: cifrado de corrimiento de autoclave

Y, para terminar con el cifrado de corrimiento de autoclave, aquí lo tienes, como siempre, programado en JavaScript para que puedas usarlo sin tener que recurrir a papel y lápiz. Escribe el mensaje que deseas utilizar (todos los caracteres que no sean letras serán ignorados) y desmarca la casilla si deseas descifrar o déjala marcada si quieres cifrar.

He dejado el código utilizado más abajo por si estás interesado. El programa es similar al usado para el cifrado de corrimiento de clave que ya vimos, con algunas modificaciones a la hora del descifrado.

TEXTO  CIFRAR




var alphabet = "ABCDEFGHIJKLMN\u00D1OPQRSTUVWXYZ";

function cipher(text, isCipher){
  //First step: get the text as a list of numbers.
  var textNumbers = textToNumbersList(text);

  //Second step: double/halve the letter.
  var i, len = textNumbers.length, current;
  var alphLen = alphabet.length;
  var result = "";
  for(i = 0; i < len; i++){
    current = textNumbers[i];
    if(isCipher){
      current = (current*2)%alphLen;
    }else{
      if(current%2 != 0){
        current += alphLen;
      }
      current /= 2;
    }
    if(current == 0){
      current = alphLen;
    }
    result += alphabet.charAt(current-1);
  }
  return result;
}

function textToNumbersList(textString){
  //This method takes a string and changes the letters into numbers, returning a list.
  var result = [], length = textString.length, i;
  for(i = 0; i < length; i++){
    result.push(alphabet.indexOf(textString.charAt(i)) + 1);
  }
  return result;
}

No hay comentarios:

Publicar un comentario