AD

¿Ya dominas lo básico? Un curso estructurado de JavaScript es la vía rápida para dar el salto.

Ver cursos de JavaScript en Udemy

Enlace de afiliado. No te cuesta nada extra.

🟨Lecciones de JavaScript
Lección 35 / 69

Construir un cifrado César (desplazar letras)

En esta lección practicarás la manipulación de cadenas con códigos de carácter implementando el cifrado César, un cifrado clásico. Está dirigida a quien busca «implementar un cifrado en JavaScript» o «uso de charCodeAt».

El cifrado César es un cifrado sencillo, que se remonta a la antigua Roma, en el que cada letra del alfabeto se sustituye desplazándola un número fijo de posiciones. Imagínalo como «un juego de mensajes secretos en el que hablas corriendo el abecedario 3 letras». Se implementa convirtiendo los caracteres en números (códigos) con .charCodeAt(), haciendo el cálculo y volviéndolos a convertir en caracteres con String.fromCharCode().

El código de ejemplo combina .replace() con la expresión regular /[A-Z]/g para aplicar el desplazamiento solo a las letras mayúsculas. El punto clave es que, tras sumar shift al código del carácter, aplicar % 26 mantiene el resultado dentro del rango de 26 letras: así se consigue la «vuelta completa» de regresar a la A justo después de la Z.

Comparado con la criptografía moderna es extremadamente simple y fácil de romper, pero es un tema estupendo para practicar la aritmética con códigos de carácter, una operación básica de la programación. Un tropiezo habitual al empezar es desplazar sin querer también caracteres que no son letras (símbolos u otros alfabetos): hay que acotar bien el objetivo.

Como puerta de entrada a la criptografía moderna, prueba a tocar el mecanismo con tus propias manos. Los campos de seguridad reales usan estructuras matemáticas mucho más complejas que este cifrado clásico, pero la idea de «tratar caracteres como números y calcular con ellos» es también la base para aprender técnicas criptográficas más avanzadas.

JavaScript
SALIDA

💡 Todo lo que pases a console.log() aparece en la salida de abajo.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)