Cifrado César en JavaScript

Muhammad Muzammil Hussain 12 octubre 2023
  1. Cifrado César
  2. Algoritmo del Cifrado César
  3. Cifrado César en JavaScript
Cifrado César en JavaScript

En este artículo, aprenderemos y usaremos el cifrado César en el código fuente de JavaScript. El Cifrado César es una técnica para cifrar y descifrar la cadena en la programación.

Cifrado César

Es una de las técnicas más sencillas y avanzadas para cifrar datos. En el texto de cadena proporcionado, reemplazamos y cambiamos cada letra con la letra, que es un número fijo hacia arriba o hacia abajo en el alfabeto.

Por ejemplo, si definimos el número 3 fijo hacia arriba, "A" en una cadena se reemplazará por "D", y "B" se reemplazará por "E", y así sucesivamente.

Supongamos que definimos hacia arriba el número fijo 3 para desplazar una letra; nuestro cifrado proporcionará un resultado, como se muestra a continuación.

original string = "hello world"
result string = "khoor zruog"

Algoritmo del Cifrado César

Una cadena que debe cifrarse se denomina texto; primero, necesitamos definir un número fijo entre 0 y 25, ya que sabemos que el total de alfabetos es 26; luego, necesitamos recorrer el texto proporcionado un carácter a la vez.

Para cada índice, convierta cada carácter según la regla de incremento hacia abajo o incremento hacia arriba, que ya hemos decidido. Finalmente, necesitamos generar la cadena resultante.

Cifrado César en JavaScript

En JavaScript, los desarrolladores utilizaron principalmente técnicas de cifrado integradas o creadas a medida para proteger los datos durante la interacción con el servidor. En una aplicación web de JavaScript, necesitamos cifrar nuestros datos la mayor parte del tiempo antes de cargarlos en nuestra base de datos.

Crearemos un ejemplo de la función de JavaScript a continuación que nos ayudará a cifrar nuestra cadena en la técnica del Cifrado César.

Ejemplo:

const org = 'hello world';
const createMAp = (alphabets, shift) => {
  return alphabets.reduce((charsMap, currentChar, charIndex) => {
    const copy = {...charsMap};
    let ind = (charIndex + shift) % alphabets.length;
    if (ind < 0) {
      ind += alphabets.length;
    };
    copy[currentChar] = alphabets[ind];
    return copy;
  }, {});
};
const encrypt = (org, shift = 0) => {
  const alphabets = 'abcdefghijklmnopqrstuvwxyz'.split('');
  const map = createMAp(alphabets, shift);
  return org.toLowerCase().split('').map(char => map[char] || char).join('');
};

console.log('original string : ' + org)
console.log('result string :' + encrypt(org, 3))

Producción :

"original string : hello world"
"result string :khoor zruog"

En la fuente de JavaScript anterior, hemos creado la función cifrar en la que estamos pasando valores de cadena y números fijos como argumento. Hemos definido todos los alfabetos y generado objetos de mapa utilizando la función createMap().

En la función createMap(), usamos el método reduce para generar el objeto. Hemos utilizado los métodos toLowerCase() y split() para evitar y generar nuevas cadenas evitando caracteres especiales con el número fijo 3.