Implementando el Cifrado César en JavaScript

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, exploraremos el cifrado César, un algoritmo de cifrado simple que desplaza cada letra de una cadena dada un cierto número de posiciones hacia abajo en el alfabeto. Implementaremos el cifrado César en JavaScript, utilizando una combinación de manipulación de cadenas y métodos de arrays, y aprenderemos cómo cifrar y descifrar mensajes con esta técnica. Este laboratorio es una excelente oportunidad para practicar tus habilidades de JavaScript y obtener una mejor comprensión de los algoritmos de cifrado.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/cond_stmts("Conditional Statements") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("Spread and Rest Operators") subgraph Lab Skills javascript/variables -.-> lab-28183{{"Implementando el Cifrado César en JavaScript"}} javascript/data_types -.-> lab-28183{{"Implementando el Cifrado César en JavaScript"}} javascript/arith_ops -.-> lab-28183{{"Implementando el Cifrado César en JavaScript"}} javascript/comp_ops -.-> lab-28183{{"Implementando el Cifrado César en JavaScript"}} javascript/cond_stmts -.-> lab-28183{{"Implementando el Cifrado César en JavaScript"}} javascript/higher_funcs -.-> lab-28183{{"Implementando el Cifrado César en JavaScript"}} javascript/spread_rest -.-> lab-28183{{"Implementando el Cifrado César en JavaScript"}} end

Cifrado César

Para utilizar el cifrado César, siga estos pasos:

  1. Abra la Terminal/SSH y escriba node para comenzar a practicar la codificación.
  2. Llame a la función caesarCipher con la cadena a cifrar o descifrar, el valor de desplazamiento y un booleano que indique si se debe descifrar o no.
  3. La función caesarCipher utiliza el operador módulo (%) y el operador ternario (?) para calcular la clave de cifrado o descifrado correcta.
  4. Utiliza el operador de propagación (...) y Array.prototype.map() para iterar sobre las letras de la cadena dada.
  5. Utiliza String.prototype.charCodeAt() y String.fromCharCode() para convertir cada letra adecuadamente, ignorando los caracteres especiales, espacios, etc.
  6. Utiliza Array.prototype.join() para combinar todas las letras en una cadena.
  7. Si desea descifrar una cadena cifrada, pase true al último parámetro, decrypt, cuando llame a la función caesarCipher.

A continuación, se muestra el código de la función caesarCipher:

const caesarCipher = (str, shift, decrypt = false) => {
  const s = decrypt ? (26 - shift) % 26 : shift;
  const n = s > 0 ? s : 26 + (s % 26);
  return [...str]
    .map((l, i) => {
      const c = str.charCodeAt(i);
      if (c >= 65 && c <= 90)
        return String.fromCharCode(((c - 65 + n) % 26) + 65);
      if (c >= 97 && c <= 122)
        return String.fromCharCode(((c - 97 + n) % 26) + 97);
      return l;
    })
    .join("");
};

A continuación, se muestran algunos ejemplos de cómo utilizar la función caesarCipher:

caesarCipher("Hello World!", -3); // 'Ebiil Tloia!'
caesarCipher("Ebiil Tloia!", 23, true); // 'Hello World!'

Resumen

¡Felicitaciones! Has completado el laboratorio del Cifrado César. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.