AD

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

Ver cursos de Swift en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐦Lecciones de Swift
Lección 34 / 68

Construir un cifrado César

En esta lección desplazarás cada letra unas posiciones en el alfabeto.

Se recorren los caracteres y, para los que están en el rango de las mayúsculas, se desplaza su código numérico. El % 26 hace que después de la Z se vuelva a la A.

El código de ejemplo desplaza tres posiciones un texto en mayúsculas.

Fíjate en que el bucle recorre unicodeScalars y no los caracteres directamente. En Swift un Character puede estar formado por varios códigos Unicode, así que para hacer aritmética con códigos hay que bajar a ese nivel. Es una consecuencia directa de que Swift trate el texto correctamente, y una de las cosas que más desconcierta al llegar de otro lenguaje.

Con el español hay que ser consciente de una limitación: el rango 65–90 no incluye la Ñ ni las vocales acentuadas, así que esas letras pasan sin cifrar. No es un fallo del ejemplo: es lo que hace el cifrado César clásico, pensado para el alfabeto latino de 26 letras.

Y que quede claro: esto no es seguridad. Se rompe probando 25 posibilidades. Para cifrar de verdad, Apple ofrece CryptoKit, y la regla de oro es no inventarse nunca un algoritmo propio.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar Swift directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

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