#include <LiquidCrystal.h>
// Inicializa la librería con los números de los pines a los que está conectado el LCD
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
String plaintext = "HOLA MUNDO"; // Texto a encriptar
String key = "KEY"; // Clave para el cifrado Vigenère
String ciphertext = ""; // Texto encriptado
void setup() {
// Configura las columnas y filas del LCD
lcd.begin(16, 2);
// Llama a la función para encriptar el texto con Vigenère
ciphertext = vigenereEncrypt(plaintext, key);
// Muestra el texto encriptado en la pantalla LCD
lcd.print(ciphertext);
}
void loop() {
// No se necesita hacer nada aquí
}
char encryptChar(char c, char k) {
// Solo encriptar letras mayúsculas
if (c >= 'A' && c <= 'Z') {
c = ((c - 'A') + (k - 'A')) % 26 + 'A';
}
return c;
}
String vigenereEncrypt(String text, String key) {
String result = "";
int keyIndex = 0;
for (int i = 0; i < text.length(); i++) {
char c = text[i];
if (c >= 'A' && c <= 'Z') {
result += encryptChar(c, key[keyIndex]);
keyIndex = (keyIndex + 1) % key.length();
} else {
result += c; // Dejar caracteres no alfabéticos sin cambios
}
}
return result;
}